设置定时任务,定时修改数据库字段。
SET GLOBAL event_scheduler = 1; -- 开启事件 event, 0 为关闭
CREATE EVENT IF NOT EXISTS temp_event1
ON SCHEDULE EVERY 1 DAY -- 周期一天
ON COMPLETION PRESERVE ENABLE
DO update filter_element_inf set used_day= used_day + 1;
- 以上周期一天太长,可以设置时间周期为1分钟的时间检验方便观察。
CREATE event IF NOT EXISTS temp_event2
ON SCHEDULE EVERY 1 MINUTE
ON COMPLETION PRESERVE
DO update filter_element_inf set used_day= used_day + 1;
查看事件(event)是否开启成功。
SHOW VARIABLES LIKE 'event_scheduler';
效果如下:
- 查询已创建事件的相关信息
SELECT * FROM information_schema.events;
效果如下:
自定义事件的开始结束执行时间
- 还可以设置STARTS/ENDS 决定开始/结束执行的时间。 若不设定,从即刻起开始执行,无结束时间,即MySQL服务不重启都会执行下去。
CREATE EVENT IF NOT EXISTS temp_event1
ON SCHEDULE EVERY 1 DAY STARTS DATE_ADD(DATE_ADD(CURDATE(), INTERVAL 1 DAY), INTERVAL 1 HOUR)
ON COMPLETION PRESERVE ENABLE
DO update filter_element_inf set used_day= used_day + 1;
手动开启暂停事件
alter event temp_event on COMPLETION PRESERVE ENABLE/DISABLE;
效果如下: