我有一个数据表和一个存档表。
webapp将数据注入到数据表中,cron作业每小时将数据提取出来并将其归档到归档表中(这将使数据表保持小而快速地工作)。
在我看来,有两个psudo SQL查询要运行:

INSERT Archive SELECT * FROM Data;

&
DELETE FROM Data;

但是,我只想删除成功复制的数据,如果复制失败,我希望它保持一致的状态,数据既不移动一半,也不删除。
正确的方法是什么?

最佳答案

交易

start transaction;
insert into archive select * from data;
delete from data where primary_key in (select primary_key from archive);
commit;

关于mysql - 原子[移动到另一个表,然后删除原始数据],我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2875534/

10-15 20:32
查看更多