2016-04-29 461 views
0

我想插入新的歷史記錄行

UPDATE table SET column = 1 where column = 0; 

INSERT (rows i just updated) INTO history_table; 

我可以莫名其妙的ID從選擇查詢行匹配這些ID存儲,然後使用這些更新和隨後INSERT成歷史表?

+3

可能的重複[添加每個更新,刪除,插入查詢到MySQL中的新記錄](http://stackoverflow.com/questions/1697733/add-every-update-delete-insert-query-to-a -new-record-in-mysql) – piyushj

+0

在更改它們之前,您需要將列= 0的行保存到history_table中。如果歷史記錄表包含其他行,則可能需要使用pre_history_table,將它們設置爲零,然後插入到history_table中。 – lit

回答

-1

(我還不能評論)有一個​​具體的理由去做一個查詢嗎? 如果沒有,那麼你可以使用臨時表來存儲ID並獲取它們用於更新並使用子查詢插入。

0

INSERT INTO history_table(id) (SELECT id from table WHERE column = 0);

UPDATE table SET column = 1 where column = 0;

這樣,你只得到了的ID,將在history_table進行更新,然後你可以將其更新到正確的價值觀。

+0

謝謝@jyncka排序是一個好主意,玩這個,因爲我還必須在插入時將所選行列從值0變換爲1。我不喜歡交易是非原子的,但也許沒關係。 – tgk