事件调度器(又称临时触发器)是myspl在5.1.6版本加入的新功能,类似于linux的crontable
在使用之前先要确认event_scheduler处于ON的状态
show variables like 'event_scheduler';
如果显示是OFF,就设置为ON
set global event_scheduler =ON;
先定义一个procedure, test
CREATE PROCEDURE test ()
BEGIN
insert into test values(now());
END;
具体procedure的用法可以先参考procedure用法,回头再写一个详细具体的
定义event的语法
CREATE EVENT [IF NOT EXISTS] event_name[IF NOT EXISTS]选项可以让命令在不存在同名的event的时候才执行
ON SCHEDULE schedule
[ON COMPLETION [NOT] PRESERVE]
[ENABLE | DISABLE]
[COMMENT 'comment']
DO sql_statement;
[ON SCHEDULE]定义event执行的时间
[ON COMPLETION [NOT] PRESERVE]选项可以定义这个时间是循环还是执行一次就结束,默认是NOT PRESERVE(也就是默认值执行一次)
[ENABLE | DISABLE]选项设置是否暂时关闭
[COMMENT 'comment']为该event添加注释
create event [if not exists] test_event
on schedule every 30 second
do call test();
查看event
show events;
删除event
drop event [if exists] test_event;如果event存在则执行,如果不存在就报错,加上if exists就不会有问题
修改event
alter event test_event这样就将上面的那个event从30秒启动一次变成了20秒启动一次了
on schedule every 20 second
do call test();
参考博客:mysql创建定时任务