mysql 定期删除表中无用数据

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






原文地址:https://www.cnblogs.com/prettrywork/p/7892315.html