MySQL 从 5.1.6 版本起,增加了一个时间调度器(Event Scheduler),可以做定时操作,精确到秒来执行。
首先查看定时任务是否开启,命令
SHOW VARIABLES LIKE 'event_scheduler';
若没有开启,则使用如下命令开启定时器
SET GLOBAL event_scheduler = 1
或者
SET GLOBAL event_scheduler = ON
创建定时任务
例子如下: 每隔10秒更新一次表中指定项的内容。
CREATE EVENT export_tag_result
ON SCHEDULE EVERY 10 SECOND
DO
UPDATE news_sign.news_tagging_app_unrevised SET IsRevised = IsRevised + 1 WHERE ID = '22';
语法总结
CREATE EVENT 事件名称
ON SCHEDULE EVERY 间隔时间
DO
具体执行的SQL任务
修改定时任务
上面的一个定时任务是创建好了,可是在运行的过程中,我们免不了会对其进行修改,那么如何进行修改呢?语法如下
ALTER EVENT 事件名称
ON SCHEDULE EVERY 间隔时间
DO
具体执行的SQL任务
关闭(开启)定时任务
(1) 关闭指定事件的定时任务
ALTER EVENT 事件名称 ON COMPLETION PRESERVE DISABLE;
相对应的开启指定事件的定时任务
ALTER EVENT 事件名称 ON COMPLETION PRESERVE ENABLE;
(2) 关闭定时器
SET GLOBAL event_scheduler = 0
或者
SET GLOBAL event_scheduler = OFF
查看事件
上面的操作都涉及到了事件的名称,可是我们往往在程序运行了一会儿之后就会忘记当初自己对事件的具体命名情况,那么如何查看事件的名称呢?我们可以通过如下命令来看事件。
SHOW EVENTS;
或者
SELECT * FROM MYSQL.EVENT;
附
该文章于2017年9月28日于CSDN上首次发表,2017年12月24日搬家至此!