vlambda博客
学习文章列表

小码农如何学习MySQL的定时任务详解

自 MySQL5.1.6起,增加了一个非常有特色的功能–事件调度器(Event Scheduler),可以用做定时执行某些特定任务,来取代原先只能由操作系统的计划任务来执行的工作。事件调度器有时也可称为临时触发器(temporal triggers),因为事件调度器是基于特定时间周期触发来执行某些任务,而触发器(Triggers)是基于某个表所产生的事件触发的,区别也就在这里

一、查看定时策略是否开启

show variables like '%event_sche%';

开启定时策略:

set global event_scheduler=1;

这里的设置,当mysql重启后,又会自动关闭。如果需要一直开启,需要在my.ini中配置如下:

Event_scheduler=on

二、创建存储过程

use test:数据库名delimiter // :这个是将mysql中以;(分号)结尾的规定修改为以//(双斜杠)为语句结束符

三、创建定时任务

小码农如何学习MySQL的定时任务详解

  1. create event day_event:是创建名为run_event的事件;

  2. 创建周期定时的规则,意思是每分钟执行一次;

  3. on completion preserve disable是表示创建后并不开始生效;

  4. do call test_procedure ()是该event(事件)的操作内容。

四、定时任务操作

1、查看定期任务

小码农如何学习MySQL的定时任务详解

2、开启或关闭定时任务

小码农如何学习MySQL的定时任务详解

五、定时规则

1、周期执行–关键字 EVERY单位有:second,minute,hour,day,week(周),quarter(季度),month,year

on schedule every 1 week //每周执行1次

2、在具体某个时间执行–关键字 AT

3、在某个时间段执行–关键字STARTS ENDS