自MySQL5.1.0起,增加了一個非常有特色的功能–事件調度器(Event Scheduler),可以用做定時執行某些特定任務,可以看作基于時間的觸發器。
?
一、開啟
事件調度默認是關閉的,開啟可執行
- SET? GLOBAL?event_scheduler=1;??
- SET? GLOBAL?event_scheduler= ON;??
或者在my.ini文件中加上event_scheduler=1
或者在啟動命令后加上"-event_scheduler=1"
可以通過如下命令查看是否已開啟事件調度器。
- SHOW?VARIABLES? LIKE? 'event_scheduler';??
- SELECT?@@event_scheduler;??
?
二、創建
?
- 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?{ YEAR?|?QUARTER?|? MONTH?|? DAY?|? HOUR?|? MINUTE?|??
- ????WEEK?|? SECOND?|?YEAR_MONTH???
?
event_name:是你要創建的事件名稱
schedule:是執行計劃,有兩個選項,第一是在某一時刻執行,第二是從某時到某時每隔一段時間執行。
INTERVAL:時間間隔,可以精確到秒。
ON COMPLETION [NOT] PRESERVE:結束后是否保存,默認不保存,一旦執行完,事件就被刪除了,因此強烈建議此參數設為 ON COMPLETION PRESERVE。
?
- ON?SCHEDULE? AT? CURRENT_TIMESTAMP?+?INTERVAL?5? DAY??
是從現在起5日后執行
?
?
- ON?SCHEDULE? AT? TIMESTAMP? '2012-03-07?12:00:00'??
在某一具體時刻執行
?
?
- ON?SCHEDULE?EVERY?1? DAY???
- STARTS? CURRENT_TIMESTAMP?+?INTERVAL?5? DAY??
- ENDS? CURRENT_TIMESTAMP?+?INTERVAL?1? MONTH??
5天后開始每天執行,一個月后結束
?
CURRENT_TIMESTAMP可以用具體時間替換,比如'2012-03-06 18:00:00'
?
- CREATE?EVENT?`NewEvent`??
- ON?SCHEDULE?EVERY?1? MONTH?STARTS? '2012-04-01?00:00:00'?ENDS? '2100-01-01?00:00:00'??
- ON?COMPLETION?PRESERVE??
- ENABLE??
- DO??
- update?tb_test? set?amount=100? where?id=2;;??
這是一個完整的例子。
?
三、修改
?
- ALTER?EVENT?event_name??
- ????[ ON?SCHEDULE?schedule]??
- ????[RENAME? TO?new_event_name]??
- ????[ ON?COMPLETION?[ NOT]?PRESERVE]??
- ????[COMMENT? 'comment']??
- ????[ENABLE?|?DISABLE]?[DO?sql_statement]??
?
?
- ALTER?EVENT?e_test?DISABLE;??
關閉e_test事件。
?
注意,一旦MySQL重啟,Disable的事件將全部消失。
四、刪除
?
- DROP?EVENT?[IF?EXISTS]?event_name ?
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
