mysql过期数据_mysql通过事件定时删除过期数据记录方法
1、 查看MySQL是否开启了事件功能
查看命令:
show variables like '%sc%';
打开event_scheduler(临时开启,MySQL服务重启后时效)
SET GLOBAL event_scheduler = ON;
永久开启方法:my.cnf中[mysqld]添加event_scheduler=on #重启服务
2、 创建事件
create event myevent on SCHEDULE every 5 second do delete from Syslog.SystemEvents where ReceivedAt
说明:
ReceivedAt:数据库Syslog.Systemevents表中的时间字段
(date,INTERVAL expr type):
date:数据库当前时间CURRENT_TIMESTAMP()
INTERVAL:关键字(间隔)
expr:具体的时间间隔(-5)
type:时间单位:
MICROSECOND
间隔单位:毫秒
SECOND
间隔单位:秒
MINUTE
间隔单位:分钟
HOUR
间隔单位:小时
DAY
间隔单位:天
WEEK
间隔单位:星期
MONTH
间隔单位:月
QUARTER
间隔单位:季度
YEAR
间隔单位:年
SECOND_MICROSECOND
复合型,间隔单位:秒、毫秒,expr可以用两个值来分别指定秒和毫秒
MINUTE_MICROSECOND
复合型,间隔单位:分、毫秒
MINUTE_SECOND
复合型,间隔单位:分、秒
HOUR_MICROSECOND
复合型,间隔单位:小时、毫秒
HOUR_SECOND
复合型,间隔单位:小时、秒
HOUR_MINUTE
复合型,间隔单位:小时分
DAY_MICROSECOND
复合型,间隔单位:天、毫秒
DAY_SECOND
复合型,间隔单位:天、秒
DAY_MINUTE
复合型,间隔单位:天、分
DAY_HOUR
复合型,间隔单位:天、小时
YEAR_MONTH
复合型,间隔单位:年、月
如果存在事件,请先删除,删除命令:drop event if exists myevent;
3、 开启事件
alter event myevent on completion preserve enable;
4、关闭事件的命令:alter event myevent on completion preserve disable;