我想将表中的旧记录移动到另一个表。MySQL - 将一个表的子集移动到另一个表
如果我这样做:
INSERT INTO archived_item SELECT * FROM item WHERE is_sold=1 AND sold_at < DATE_SUB(CURRENT_DATE, INTERVAL 6 MONTH)
我只想复制行。但我需要移动他们。
我不认为在运行前一后这个查询是理想:
DELETE FROM item WHERE is_sold=1 AND sold_at < DATE_SUB(CURRENT_DATE, INTERVAL 6 MONTH)
我不希望无论使用任何外部工具。
是否可以通过SQL来实现?
你认为这是一个好办法吗?这不能导致不一致吗? – dan 2011-02-28 10:02:27
那么,您可以使用事务来确保一旦插入到目标表中的记录应该从源表中删除。你在说什么不一致? – 2011-02-28 10:04:26
啊,你是对的! – dan 2011-02-28 10:05:56