2011-09-23 4 views
1

Я вижу, что этот вопрос задавался по-разному, но я не очень хорошо их понимаю.Переместить запись в другую таблицу MySQL

Я хочу переместить мои записи, срок действия которых меньше/меньше now() - каждый из них имеет поле со своей датой, в секундах от 1970 года) до другой идентичной таблицы. Это делается для того, чтобы уменьшить значение события в главной таблице.

Есть ли какой-либо один запрос, который я могу использовать для перемещения записи в другую таблицу? Я могу проверить время/когда истечет сам.

ответ

5

Вы не можете сделать это в одном запросе, вы должны выполнить два: запроса 1:

INSERT INTO newtable SELECT * FROM oldtable WHERE date<now(); 

запрос 2:

DELETE FROM oldtable WHERE date <= SELECT MAX(date) FROM newtable 
+0

Круто. Спасибо, хорошо выглядит. – LouwHopley

0
insert into backupTable (select field1, field2 from mainTable where myDate < UNIX_TIMESTAMP(NOW())) 

delete from mainTable where myDate < UNIX_TIMESTAMP(NOW()) 
+1

Все было бы нормально, если бы запросы выполнялись в одну секунду, что в больших таблицах стало менее возможным. В вашем случае вы можете удалить больше строк, чем вы переместили. – cichy

Смежные вопросы