简介
事件调度器(event scheduler)可以用来做定时执行某些特定任务(如删除记录,对数据进行汇总等),并且事件调度器可以精确到每秒执行一个任务,而操作系统只能精确到每分,对于一些对数据实时性要求比较高的应用(例如:股票、赔率、比分等)就非常适合。事件调度器有时也可称为临时触发器(temporal triggers),因为事件调度器是基于特定时间周期触发来执行某些任务,而触发器(Triggers)是基于某个表所产生的事件触发的,区别也就在这里。
在使用这个功能之前必须确保event_scheduler已开启,可执行
set global event_scheduler = 1 或 set global event_scheduler = on
要查看当前是否已开启事件调度器,可执行如下SQL:
select @@event_scheduler 或 select @@event_scheduler 或 show processlist
创建event
- 语法如下
CREATE EVENT [IF NOT EXISTS] event_name ON SCHEDULE schedule [ON COMPLETION[NOT] PRESERVE] [ENABLE | DISABLE] [COMMENT 'comment'] DO sql_statement;
- 例子:每天定时调用存储过程:
create event mrms_auto_set_time on schedule every 1 day starts on completion perserve enable do begin call mrms_procedure_origin();//调用存储过程一定要加()