今天要做一个定时任务更新数据库MySQL,正想着用什么做呢?忽然想到MySQL是不是有定时任务,果不其然真有。
MySQL从5.1.6版本起,增加了一个时间调度器(Event Scheduler),可以做定时执行操作,精确到秒来执行。
使用这个功能必须确保开启event_scheduler。
开启命令:set GLOBAL event_scheduler = 1 或 set GLOBAL event_scheduler = ON
在配置文件也可以配置,在配置文件my.cnf 加入 event_scheduler = 1
--查看定时任务是否开启 下面两个命令都可以
SHOW VARIABLES LIKE 'event_scheduler';
SELECT @@event_scheduler;
--开启定时任务
SET GLOBAL event_scheduler = ON;
查看是否开启 SHOW VARIABLES LIKE 'event_scheduler';
--创建定时任务
官方例子:
CREATE EVENT myevent
--一个小时执行一次
ON SCHEDULE AT CURRENT_TIMESTAMP + INTERVAL 1 HOUR
DO
UPDATE myschema.mytable SET mycol = mycol + 1;
The previous statement creates an event named myevent. This event executes once—one hour following its creation—by running an SQL statement that increments the value of the myschema.mytable table's mycol column by 1.
我的例子:
CREATE EVENT z_paihang
--十秒执行一次
ON SCHEDULE EVERY 10 SECOND
DO
begin
--写你的SQL任务
end
--修改定时任务
ALTER EVENT z_paihang
ON SCHEDULE EVERY 600 SECOND
DO
begin
--写你的SQL任务
end
本文结束