Mysql创建定时计划任务:
方案一:直接创建事件
1、 在使用这个功能之前必须确保event_scheduler已开启
SHOW VARIABLES LIKE ‘event_scheduler’; //若为OFF则执行下面的语句
SET GLOBAL event_scheduler = 1;
2、 创建事件的语法格式
CREATE EVENT [IFNOT EXISTS] 事件名
ONSCHEDULE 计划(如执行时间,执行频率)
[ONCOMPLETION [NOT] PRESERVE] //任务结束后是否保留该任务
[ENABLE | DISABLE] //开启|关闭事件,默认为ENABLE
[COMMENT ‘comment’] //该事件的备注
DO sql语句;
例如:创建一个名为haha_event的事件,每5秒钟执行一次,任务结束后依然保留该任务,事件的内容为给test库中的t1表插入一条值为1数据。
CREATE EVENT haha_event
ON SCHEDULE EVERY 5 SECOND
ON COMPLETION PRESERVE
DO
insert into test.t1 values(1);
方案二:首先创建存储过程
CREATE PROCEDURE haha() //一个名为haha的存储过程
BEGIN
insert into test.t1 values(1); //需要执行的sql语句
END;
接着,创建任务
CREATE EVENT haha_event
ON SCHEDULE EVERY 5 SECOND //每5秒执行一次
ON COMPLETION PRESERVE //任务结束后依然保留该任务
DO
CALL haha(); //调用存储过程
如果在运行中想要临时关闭一下某个任务,执行 ALTER EVENT 语句即可:
ALTER EVENT 事件名 ON COMPLETION PRESERVE DISABLE; ##关闭事件
ALTER EVENT 事件名 ON COMPLETION PRESERVE ENABLE; ##开启事件
查看事件任务:SHOW EVENTS ;