MySQL定時計畫任務

2021-06-17 23:59:51 字數 2732 閱讀 9167

5.1版本以後,mysql支援定時執行(event)的功能,就跟linux的crontab差不多。

一、先檢視一下你的msyql版本,查詢版本資訊的sql語句:

sql**  

select version();

確定版本支援之後,再檢視一下event是否開啟:

二、檢視是否開啟event

1  mysql event功能預設是關閉的,可以使用下面的語句來看event的狀態,如果是off或者0,表示是關閉的。

sql**  

show variables like

'%sche%';   

如果未開啟,那如何開啟呢?

2  開啟event功能

sql**  

setglobalevent_scheduler = 1;

三、定時任務

1、建立event語法

createevent [ifnotexists] event_name

onschedule schedule

[oncompletion [not] preserve]

[enable | disable]

[comment'comment']

do sql_statement;

schedule:

at timestamp [+ interval interval]

| every interval [starts timestamp] [ends timestamp]

interval:

quantity

一般定時執行有2種:

2、從具體乙個時間點開始,每隔一段時間執行一次;

從現在開始,每30秒執行一次

sql**  

create event if not exists e_test  

on schedule every 30 second starts now()  

on completion preserve  

do  

insert

into sdb_yoyi (yoyiscid,orderid) values(2,3)  

3、從具體乙個時間點開始,在當日的某個時間點進行執行;

每個月的一號凌晨1點執行

sql**  

create event if not exists e_test2  

on schedule every 1 month starts date_add(date_add(date_sub(curdate(),interval day(curdate())-1 day), interval 1 month),interval 1 hour)  

on completion preserve  

do  

insert

into sdb_yoyi (yoyiscid,orderid) values(2,3)   四、

1、也可以對事件任務進行關閉:

sql**  

alter event e_test on

completion preserve disable;   

2、對已經關閉的事件任務進行開啟:

sql**  

alter event e_test on

completion preserve enable; 

3、刪除事件

sql** 

drop event [if exists] event_name;

4、修改事件(alter event)

alterevent event_name

[onschedule schedule]

[renametonew_event_name]

[oncompletion [not] preserve]

[comment'comment']

[enable | disable]

[do sql_statement]

Mysql建立定時計畫任務

mysql建立定時計畫任務 方案一 直接建立事件 1 在使用這個功能之前必須確保event scheduler已開啟 show variables like event scheduler 若為off則執行下面的語句 set global event scheduler 1 2 建立事件的語法格式 ...

ansible windows 定時計畫任務

ansible使用win shell模組執行windows命令。ansible all m win shell a schtasks create sc daily tn restart tr c windows system32 shutdown.exe r f t 1 st 02 00 建立定時...

Linux定時(計畫)任務

1 概念 未來的某時間點執行一次某任務或者週期性的執行某個任務,執行結果會通過郵件的形式傳送給使用者 2 可將其分為兩類 1 定點執行一次某任務 at,batch 2 週期性的執行某任務 crontab 1.1 使用者及系統定時任務 crond是linux下用來週期性的執行某種任務或等待處理某些事件...