2016-04-29 252 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