将记录移动到不同的表MySQL

时间:2011-09-23 11:13:04

标签: php mysql

我看到这个问题已经有很多不同的问题,但我对它们并不了解。

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

我可以使用任何单个查询将记录移动到不同的表吗?我可以检查时间/什么时候到期。

2 个答案:

答案 0 :(得分:5)

你不能在一个查询中执行此操作,你必须执行两个: 查询1:

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

查询2:

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

答案 1 :(得分:0)

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

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