将记录移动到不同的表MySQL


Move record to different table MySQL

我看到这个问题已经被问到很多不同的方式,但我不是很了解他们。

我想把过期的记录(它们的日期落后/小于now() -每个记录都有一个字段,其中包含它们的日期,这是从1970年开始的秒数)移动到另一个相同的表。这是为了使主表中的事件提示更小。

是否有任何单一的查询,我可以使用移动记录到不同的表?我可以自己检查过期时间

你不能在一个查询中做到这一点,你必须执行两个:查询1:

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

查询2:

DELETE FROM oldtable WHERE date <= SELECT MAX(date) FROM newtable
insert into backupTable (select field1, field2 from mainTable where myDate < UNIX_TIMESTAMP(NOW()))
delete from mainTable where myDate < UNIX_TIMESTAMP(NOW())