我有一个名为chat的表。我想将内容复制到chat_archive并每天清空聊天内容。聊天消息在复制时仍会流入聊天。如何在不延迟聊天桌上的持续操作的情况下实现这一目标?
答案 0 :(得分:1)
复制聊天并在交易中将其删除,这样您就不会在这两个步骤之间丢失任何内容。
BEGIN TRANSACTION;
INSERT INTO chat_archive
SELECT * FROM chat;
DELETE FROM chat;
COMMIT;
如果您有自动增量ID列,请务必使用DELETE FROM chat;
而不是TRUNCATE chat;
,因为后者会将自动增量重置为0
。 TRUNCATE
也会自动提交交易。