mysql定期删除数据

发布时间: 2023-11-21 13:09 阅读: 文章来源:1MUMB4744PS
建立存储过程,存储过程的名字 dele_src_data

按照update_tiem字段删除过期数据

use test_db;delimiter //create procedure dele_src_data()beginDELETE FROM src_data where TO_DAYS(now())-TO_DAYS(update_time) > 1;end//delimiter ;c定时器创建定时器create event del_src_dataon schedule EVERY 3 dayon completion preserve enabledo call dele_src_data();上面为整体代码,敲完再写分号第一行create event是创建名为del_src_data的事件,注意此处没有括号第二行是创建周期定时的规则,本处的意思是每3天执行一次第三行on completion preserve enable是表示创建后开始生效。如果是disable就是不马上生效第四行call dele_src_data();是该event(事件)的操作内容,表示调用创建的dele_src_data存储过程。

如果需要指定执行开始和结束时间如下:

每隔10分钟执行一次,如下:

删除定时事件drop event dele_src_data查看定时器事件的任务参数 show events select * from mysql.event;

查看定时事件里面的具体代码内容SHOW create EVENT del_src_data

查看事件是否启动show variables like ‘event_scheduler‘;如果没有启动,启动事件set global event_scheduler=on;

永久开启事件:

在my.ini配置文件的[mysqld]部分,加上event_scheduler=ON 即可。

显示事件的运行状态 show processlist;启动定时事件,停止定时事件 alter event del_src_data on completion preserve enable; alter event del_src_data on completion preserve disable;
•••展开全文