- 查看命令
1 | show variables like '%event_sche%'; |
- 显示的event_scheduler为OFF时用以下命令开启
1 | set global event_scheduler=1; |
- 注意:以上的改法在数据库重启后将会恢复为原来状态,要想数据库重启后也可以让event_scheduler开启,则需要在配置文件my.ini的设置。修改如下,然后重启mysql服务即可。
1 2 | [mysqld] event_scheduler=ON //这一行加入mysqld标签下 |
1、创建定时任务:
create event second_event
on schedule every 1 second
on completion preserve disable
do call test_proce();
- 第一行create event day_event是创建名为second_event的事件,注意此处没有括号
- 第二行是创建周期定时的规则,本处的意思是每秒钟执行一次
- 第三行on completion preserve disable是表示创建后并不开始生效。
- 第四行do call test_proce()是该event(事件)的操作内容,表示调用我们刚刚创建的test_proce()存储过程。
2、查看定时任务event(事件),可以查看本机所有的事件
| |
3、开启已经创建好的event(事件)
| |
4、常见周期定时规则
-
周期执行–关键字 EVERY
- 单位有:second,minute,hour,day,week(周),quarter(季度),month,year
-
如:
1 2 3
on schedule every 1 second //每秒执行1次 on schedule every 2 minute //每两分钟执行1次 on schedule every 3 day //每3天执行1次
-
在具体某个时间执行–关键字 AT
-
如:
1 2 3
on schedule at current_timestamp()+interval 5 day //5天后执行 on schedule at current_timestamp()+interval 10 minute //10分钟后执行 on schedule at '2016-10-01 21:50:00' //在2016年10月1日,晚上9点50执行
-
-
在某个时间段执行–关键字STARTS ENDS
-
如:
1 2
on schedule every 1 day starts current_timestamp()+interval 5 day ends current_timestamp()+interval 1 month //5天后开始每天都执行执行到下个月底 on schedule every 1 day ends current_timestamp()+interval 5 day //从现在起每天执行,执行5天
-