正在阅读:

MySQL定时任务相关操作

mysql

MySQL在5.1.6版本之后添加了事件调度器(Event Scheduler),可以用来MySQL定时执行一些数据库功能,比如数据的增、删、改、查,又比如在某一特定的时刻清空某一张表等等,可以设置事件执行的周期开始时间和结束时间等等,这一功能大大增强的数据库的功能。下面以特定的实例来简单介绍一下该功能的用法。

一、开启事件功能

查看是否开启了MySQL事件功能:


1
show variables like 'event_scheduler';

若显示结果状态为ON或者1则为开启,OFF或0为关闭。

开启语句:set global event_scheduler=1;或者on

二、创建事件

基本语法:


1
2
3
4
5
6
create event [ifnot exits] event_name
     on schedule schedule
     [oncompletion [not] preserve]
     [enable| disable]
     [comment 'comment']
     do sql_statement;

实例1:每5秒执行一次sql语句


1
2
3
create event test_event
    on schedule every 5 second
    do  [sql语句];

实例2:5天后执行某sql语句


1
2
3
create event test_event
    on schedule at current_timestamp + interval 5 day
    do  [sql语句];

实例3:在2017年2月5号12:00:00执行


1
2
3
create event test_event
    on schedule at timestamp '2017-02-05 12:00:00'
    do  [sql语句];

实例4:每天执行


1
2
3
create event  test_event
    on schedule every 1 day
    do [sql语句];

实例5:5天后开启每天执行


1
2
3
4
create event test_event
    on schedule every 1 day
    starts current_timestmp + interval 5day
    do [sql语句];

实例6:每天执行,五天后停止执行


1
2
3
4
create event test_event
    on schedule every 1 day
    ends current_timestmp + interval 5 day
    do [sql语句];

实例7:5天后开启每天执行,一个月后停止


1
2
3
4
5
create event test_event
    on schedule every 1 day
    starts current_timestmp + interval 5 day
    ends current_timestmp + interval 1 month
    do [sql语句];

实例8:定时执行一次或者持久执行


1
2
3
4
create event test_event
   on schedule every 1 day
   oncompletion not preserve     //去掉not为持久执行
   do [sql语句];

三、修改事件

基本语法:


1
2
3
4
5
6
7
ALERT EVENT event_name
   [ONSCHEDULE schedule]
   [RENAME TOnew_event_name]
   [ON COMPLETION [NOT] PRESERVE]
   [COMMENT 'comment']
   [ENABLE | DISABLE]
   [DO sql_statement];

例子:将每天情况test表改为5天情况一次


1
2
ALTER EVENT test_event
   ON SCHEDULE EVERY 5 DAY;

四、设置MySQL事件参数

1、临时关闭事件


1
2
ALTER EVENT test_event DISABLE;
注意:执行之后重启数据库之后该事件会被删除!

2、开启事件


1
ALTER EVENT test_event ENABLE

五、删除事件

基本语法:


1
DROP EVENT [IF EXISTS] event_name;

六、查看已创建的MySQL事件信息

1.查看所有事件


1
show events;

2.查看事件的创建信息


1
show create event [事件名];

留下脚印,证明你来过。

*

*

流汗坏笑撇嘴大兵流泪发呆抠鼻吓到偷笑得意呲牙亲亲疑问调皮可爱白眼难过愤怒惊讶鼓掌