MySQL5.1.x版本中引入了一项新特性EVENT,定期执行某些事物,这可以帮助我们实现定期执行某个小功能,不在依赖代码去实现。
我现在有一张表,这张表中的数据有个特点,每天都会有大量数据插入,但是昨天的数据已经不存在一点价值。现在需要在mysql中创建
一个定时器,每天删除昨天之前的数据。
首选查看mysql事件开启情况
SHOW VARIABLES LIKE 'event_scheduler';
默认情况下是关闭的,需要我们去打
SET GLOBAL event_scheduler = ON;
创建定时器
CREATE EVENT kbk_del
ON SCHEDULE EVERY 1 DAY
DO DELETE FROM dynamic_place WHERE DATE_SUB(CURDATE(), INTERVAL 2 DAY) <= DATE(gmt_datetime);
其中“kbk_del”为定时器的名字,“EVERY 1 DAY” 为每天多执行
“DELETE FROM dynamic_place WHERE DATE_SUB(CURDATE(), INTERVAL 2 DAY) <= DATE(gmt_datetime);”就是sql语句 删除两天前数据
查看你所创建地定时事件
SELECT * FROM information_schema.events
删除定时器
DROP event kbk_del