mysql事件排程器 create event
mysql從5.1開始支援event功能,有點類似於mssql的job,可以定時自動執行資料彙總。
【語法】
create
event [if
notexists] event_name
onschedule schedule
[oncompletion [
not] preserve]
[enable | disable]
[comment 'comment'
] do sql_statement;
schedule:
attimestamp
[+ interval interval]
| every interval [starts timestamp
] [ends
timestamp
] interval:
quantity
其中,event_name:定時器名,
最大長度64個字元,若未指定,則預設為當前的mysql使用者名稱(不區分大小寫);
schedule:
限定執行時間;
on completion [not] preserve:表示是否需要迴圈復用這個event;
sql_statement:要執行的sql語句(也可以使用儲存過程代替傳統的sql語句);
comment:對該時間排程器的乙個注釋,最大長度64個字元;
【關閉事件】
alter
event event_name
oncompletion preserve disable;
【開啟事件】
alter
event event_name
oncompletion preserve enable;
【刪除事件】
drop
event [if exists] event_name
【注意】:要使用定時器,mysql的常量global event_scheduler必須為on或者是1.
【範例】
1. 每天凌晨1點開始執行資料更新:
create
event [if
notexists] e_testevent_1
onschedule every 1
daystarts date_add(date_add(curdate(), interval 1
day), interval 1
hour
)
oncompletion preserve enable
do
update
_t_test
setcol= 2
where
validitydate < now();
2. 每月第一天凌晨1點開始執行資料更新(使用儲存過程):
create
event e_testevent_2
onschedule 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 enable
do
begin
call p_testprocedurename();
end
3. 每季度第一天凌晨1點開始執行資料更新:
create
event e_testevent_3
onschedule every 1 quarter starts date_add(date_add(
date
( concat(
year
(curdate()),
'-',elt(quarter(curdate()),1,4,7,10),
'-',1)),interval 1 quarter),interval 2
hour
) on
completion preserve enable
do
update
_t_test
setcol= 2
where
validitydate < now();
【一些event相關語句】:
1. 檢視是否開啟定時器
show variables
like
'%sche%'
;
2. 開啟定時器 0:off 1:on
setglobal
event_scheduler = 1;
mysql 事件排程器 MySQL事件排程器
一 建立排程器 將資料庫按自定義的時間週期觸發某種操作,類似linux下的crontab 例項 建立排程器後的每個1小時觸發一次 create event myevent on schedule at current timestamp interval 1 hour doupdate mysche...
MySQL事件排程器
事件排程器 event scheduler 可以定時執行某些特定任務,可以看做基於時間的觸發器.show variables like event scheduler select event scheduler set global event scheduler 1 show create ev...
MYSQL 事件排程器
要檢視當前是否已開啟事件排程器 show variables like event scheduler 開啟事件高度器 set global event scheduler 1 建立事件 語法 create event if not exists event name on schedule sch...