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**
set
global
event_scheduler = 1;
三、定時任務
1、建立event語法
create
event [if
not
exists] 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
一般定時執行有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)
alter
event event_name
[
on
schedule schedule]
[rename
to
new_event_name]
[
on
completion [
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下用來週期性的執行某種任務或等待處理某些事件...