У меня есть таблица с именем chat. Я хочу скопировать содержимое в chat_archive и очистить содержимое чата каждый день. Сообщения чата будут по-прежнему входить в чат во время копирования. Как я могу выполнить это без каких-либо постоянных операций в таблице чата?
Скопируйте чат и удалите его в транзакции, чтобы вы не потеряли ничего между этими двумя шагами.
BEGIN TRANSACTION;
INSERT INTO chat_archive
SELECT * FROM chat;
DELETE FROM chat;
COMMIT;
Если у вас есть идентификатор автоинкремента, убедитесь, что вы используете, используйте DELETE FROM chat;
вместо TRUNCATE chat;
, так как последний сбросит автоинкремент на 0
. TRUNCATE
также автоматически фиксирует транзакцию.