mysql 定时删除过期数据记录

首先连接mysql数据库:

    1、 查看MySQL事件功能开启。
show variables like %sc%;
打开event_scheduler(临时开启,MySQL服务重启后失效)
set global event_scheduler = on;
永久开启方法:my.cnf中[mysqld]添加event_scheduler=on #重启服务
    2、 创建事件
不设置starts 2020-03-19 00:00:00表示创建事件的时刻就是开始时间;
t_web_log_event表示你起的事件名称;
ad_web.t_web_log where update_time表示表名以及判断时间的字段名;
下面这句话的意思:每一天执行一次,删除过期三天的数据记录(最新记录的三天前)
create event t_web_log_event on SCHEDULE EVERY 1 DAY STARTS 2020-03-19 00:00:00 DO delete from ad_web.t_web_log where update_time<(CURRENT_TIMESTAMP()+ INTERVAL -3 DAY);
    3、查看事件
show events;

4、删除事件

t_web_log_event 事件名
drop event if exists t_web_log_event;

5、开启事件/关闭事件

alter event t_web_log_event on completion preserve ENABLE;
alter event t_web_log_event on completion preserve DISABLE;

时间单位:

含义 时间单位 毫秒 MICROSECOND 秒 SECOND 分 MINUTE 时 HOUR 天 DAY 月 MONTH 年 YEAR
经验分享 程序员 微信小程序 职场和发展