天天看點

mysql定時任務詳解_MySQL的定時任務詳解

一、檢視定時政策是否開啟

show variables like '%event_sche%';

開啟定時政策:

set global event_scheduler=1;

二、建立存儲過程

use test;

delimiter //

create procedure test_procedure ()

begin

insert into user(name,create_date) values('hello',now());

end//

delimiter ;

use test:資料庫名

delimiter // :這個是将mysql中以;(分号)結尾的規定修改為以//(雙斜杠)為語句結束符

三、建立定時任務

create event run_event

on schedule every 1 minute

on completion preserve disable

do call test_procedure ();

1、create event day_event:是建立名為run_event的事件

2、建立周期定時的規則,意思是每分鐘執行一次

3、on completion preserve disable是表示建立後并不開始生效。

4、do call test_procedure ()是該event(事件)的操作内容

四、定時任務操作

1、檢視定期任務

SELECT event_name,event_definition,interval_value,interval_field,status

FROM information_schema.EVENTS;

2、開啟或關閉定時任務

alter event run_event on completion preserve enable;//開啟定時任務

alter event run_event on completion preserve disable;//關閉定時任務

五、定時規則

1、周期執行–關鍵字 EVERY

機關有:second,minute,hour,day,week(周),quarter(季度),month,year

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

2、在具體某個時間執行–關鍵字 AT

on schedule at current_timestamp()+interval 5 day //5天後執行

on schedule at '2019-01-01 00:00:00' //在2019年1月1日,0點整執行

3、在某個時間段執行–關鍵字STARTS ENDS

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天