MySQL定时计划任务

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/yufengicd/article/details/10071057

5.1版本以后,MYSQL支持定时执行(event)的功能,就跟linux的crontab差不多。

一、先查看一下你的MSYQL版本,查询版本信息的SQL语句:

Sql代码  
  1. select VERSION();

 确定版本支持之后,再查看一下event是否开启:


二、查看是否开启event

     1  MySQL event功能默认是关闭的,可以使用下面的语句来看event的状态,如果是OFF或者0,表示是关闭的。

Sql代码  
  1. show variables like '%sche%';   

        如果未开启,那如何开启呢?


    2  开启event功能
Sql代码  
  1. SET GLOBAL event_scheduler = 1;


 三、定时任务

1、创建event语法

    
CREATE EVENT [IF NOTEXISTS] event_name
  
   ON SCHEDULE schedule
  
   [ON COMPLETION [NOT] PRESERVE]
  
   [ENABLE | DISABLE]
  
   [COMMENT 'comment']
  
   DO sql_statement;

  
  schedule:
   AT TIMESTAMP [+ INTERVAL INTERVAL]
   | EVERY INTERVAL [STARTS TIMESTAMP] [ENDS TIMESTAMP]
  
  INTERVAL:
   quantity {YEAR | QUARTER | MONTH | DAY | HOUR | MINUTE |
   WEEK | SECOND | YEAR_MONTH | DAY_HOUR | DAY_MINUTE |

   DAY_SECOND | HOUR_MINUTE | HOUR_SECOND | MINUTE_SECOND}


一般定时执行有2种:

2、从具体一个时间点开始,每隔一段时间执行一次;

从现在开始,每30秒执行一次

Sql代码  
  1. create event if not exists e_test  
  2. on schedule every 30 second starts now()  
  3. on completion preserve  
  4. do  
  5. INSERT into sdb_yoyi (yoyiscid,orderid) VALUES(2,3)  

 3、从具体一个时间点开始,在当日的某个时间点进行执行;

每个月的一号凌晨1点执行

Sql代码  
  1. create event if not exists e_test2  
  2. on schedule every 1 month starts DATE_ADD(DATE_ADD(DATE_SUB(CURDATE(),INTERVAL DAY(CURDATE())-1 DAY), INTERVAL 1 MONTH),INTERVAL 1 HOUR)  
  3. on completion preserve  
  4. do  
  5. INSERT into sdb_yoyi (yoyiscid,orderid) VALUES(2,3)  
 

四、

1、也可以对事件任务进行关闭:

Sql代码  
  1. alter event e_test ON      
  2. COMPLETION PRESERVE DISABLE;   

 2、对已经关闭的事件任务进行开启:

Sql代码  
  1. alter event e_test ON      
  2. COMPLETION PRESERVE ENABLE; 



 3、删除事件

Sql代码 
  1. drop event [IF EXISTS] event_name;


4、修改事件(ALTER EVENT)
   
ALTER EVENT event_name
   [ON SCHEDULE schedule]
   [RENAME TO new_event_name]
   [ON COMPLETION [NOT] PRESERVE]
   [COMMENT 'comment']
   [ENABLE | DISABLE]
   [DO sql_statement]

猜你喜欢

转载自blog.csdn.net/yufengicd/article/details/10071057