2016-03-23 42 views
0

我需要从3周前的数据库表中自动删除数据。以本周为第10周,我需要删除(10-2)第08周的数据。这里的周数不是动态的。它不断变化。所以如果我在第12周进入一个项目,第10周的数据应该从表中删除。删除特定周的数据

+2

您可以使用调度任务从数据库执行删除操作 – anomepani

回答

2

你有2个选项。

1.Event调度

首先创建表,并创建活动为删除3个星期前的记录进行删除查询。

CREATE EVENT `ex1` ON SCHEDULE 
    EVERY 1 DAY 
ON COMPLETION NOT PRESERVE 
ENABLE 
COMMENT '' 
DO BEGIN 
DELETE FROM table WHERE DATEDIFF(NOW(),TimeStampColumn) > 21 

END 
//for 3 weeks 

注:MySQL的老版本没有事件调度

2.创建cron作业

file1.sql

DELETE FROM table WHERE DATEDIFF(NOW(),TimeStampColumn) > 21 

时间表此命令:

mysql -uusername -ppassword < /path/to/file1.sql