我想在mysql表(item)中删除超过5年的行。
item
----------------
id neme date_and_time
1 a 2015-04-11 11:10:04
2 b 2005-05-22 11:10:04
3 c 2007-06-21 11:10:04
如何执行此删除操作?
另外我想每10秒运行一次这个删除操作,我可以使用事件调度程序和触发器来执行此操作吗?这两个功能有什么不同?
答案 0 :(得分:3)
尝试创建这样的事件:
CREATE EVENT DO_DELETE_OP
ON SCHEDULE
EVERY 10 SECOND
DO DELETE FROM item WHERE date_and_time < DATE_SUB(NOW(), INTERVAL 60 MONTH);
答案 1 :(得分:2)
您可以使用mysql调度程序。
https://dev.mysql.com/doc/refman/5.1/en/events.html
类似的东西:
CREATE EVENT cleanup
ON SCHEDULE
EVERY 10 SECOND
DO
DELETE FROM item WHERE date_and_time < NOW() - INTERVAL 5 YEAR;
为了使其工作,您需要启用mysql调度程序,可以这样做:
SET GLOBAL event_scheduler = ON;