一、查询事件调度器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
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;
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/115985.html