一、查询事件调度器event scheduler是否开启
show variables like 'event_scheduler'
二、查询结果
1、如果为on,说明事件调度器已经开启
2、如果显示OFF,则输入以下语句,开启事件调度器
set global event_scheduler = on;
三、设置事件开机自动启动
在重启电脑后event_scheduler会自动关闭,所以我们要设置调度器随着mysql的启动而启动,需要在my.ini配置文件的[mysqld]部分加上
event_scheduler=ON
四、创建event:每天自动清空表
CREATE EVENT
IF
NOT EXISTS updlogStatus
ON SCHEDULE EVERY 5 SECOND
ON COMPLETION PRESERVE
DO
UPDATE cmd_log log
SET log.STATUS = '19'
WHERE
log.time < SUBDATE( now(), INTERVAL 15 SECOND )
AND log.STATUS = '15'
#注释:
ON SCHEDULE EVERY 5 SECOND 按计划每5秒执行一次该事件
ON COMPLETION PRESERVE 指定创建完成后即启用,否则需手动启动
UPDATE cmd_log log
SET log.STATUS = '19'
WHERE
log.time < SUBDATE( now(), INTERVAL 15 SECOND )
AND log.STATUS = '15' 自己的业务需求我是修改时间小于15秒之前的log日志为15的改成19
DROP EVENT IF EXISTS e_delete_upvote;
CREATE EVENT e_delete_upvote
ON SCHEDULE EVERY 1 day STARTS date_add(concat(current_date(), ' 00:00:00'), interval 0 second)
ON COMPLETION PRESERVE ENABLE
DO
TRUNCATE TABLE dreamland.upvote;
#注释:
ON SCHEDULE EVERY 1 day 指定循环间隔为每天执行
STARTS date_add(concat(current_date(), ' 23:59:00'), interval 0 second) 指定运行时间为23:59:00
ON COMPLETION PRESERVE ENABLE 指定创建完成后即启用,否则需手动启动
在计划里面可以修改清空数据的间隔时间,可以用来测试使用。
五、手动关闭事件
ALTER EVENT e_delete_upvote DISABLE;
六、手动设置该事件为可用
ALTER EVENT e_delete_upvote ENABLE;
七、查看已有的定时事件任务
SHOW EVENTS;
八、删除事件
DROP EVENT e_delete_upvote;
更多推荐
mysql使用Navicat创建每5秒执行一次sql语句事件
发布评论