如何每天复制和清空MySQL表格?

时间:2018-04-06 23:47:41

标签: mysql

我有一个名为chat的表。我想将内容复制到chat_archive并每天清空聊天内容。聊天消息在复制时仍会流入聊天。如何在不延迟聊天桌上的持续操作的情况下实现这一目标?

1 个答案:

答案 0 :(得分:1)

复制聊天并在交易中将其删除,这样您就不会在这两个步骤之间丢失任何内容。

BEGIN TRANSACTION;
INSERT INTO chat_archive 
    SELECT * FROM chat;
DELETE FROM chat;
COMMIT;

如果您有自动增量ID列,请务必使用DELETE FROM chat;而不是TRUNCATE chat;,因为后者会将自动增量重置为0TRUNCATE也会自动提交交易。