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 |