mysql删除旧数据(定期删除表中的过期数据)
按照update_tiem字段删除过期数据
use test_db;
delimiter //
create procedure dele_src_data()
begin
DELETE FROM src_data where TO_DAYS(now())-TO_DAYS(update_time) > 1;
end//
delimiter ;c定时器
create event del_src_data
on schedule EVERY 3 day
on completion preserve enable
do 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;
免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com