[轉]php-將數據從一個MySQL表移動到另外一個

當用戶單擊名爲刪除的按鈕時,我試圖將數據從一個數據庫(註冊)移動到另外一個數據庫. (我想將數據移動到名爲archived的表中)
這是我嘗試過的(從Google找到):mysql

$result=mysql_query("Insert Into archived (select * from registrations WHERE id=$id") ; $row = mysql_fetch_array($result);

這不會動…任何人均可以幫忙嗎?sql

最佳答案
首先,您缺乏一個括號,在這種狀況下您根本不須要使用該括號
將查詢字符串更改成數據庫

Insert Into archived (select * from registrations WHERE id=$id) ^                                        ^

或只是fetch

Insert Into archived select * from registrations WHERE id=$id

這是SQLFiddle演示spa

其次,INSERT不返回結果集,所以您不該使用mysql_fetch_array().code

第三,若是您的意圖不單單是移動數據,那麼您還須要刪除以後複製的行.blog

如今,您能夠將其所有放入存儲過程當中字符串

DELIMITER $$ CREATE PROCEDURE move_to_archive(IN _id INT) BEGIN START TRANSACTION; INSERT INTO archived SELECT * 
      FROM registrations WHERE id = _id; DELETE
      FROM registrations WHERE id = _id; COMMIT; END$$ DELIMITER ;

用法示例:get

CALL move_to_archive(2);

這是SQLFiddle演示io

From: http://www.cocoachina.com/articles/102606

相關文章
相關標籤/搜索