一、關鍵字: EVENT
?
二、語法:
CREATE EVENT?
[IF NOT EXISTS ] //如果不存在則創建
event_name?
ON SCHEDULE schedle
[ON COMPLETION [NOT] PRESERVE]
[ENABLE|DESABLE]
[COMMENT 'comment']
DO?
sql_statement
?
說明:
1.event_name 事件的名稱
?
2.ON SCHEDULE
有兩種設定計劃任務的方式:
?
#單次計劃任務:
AT 時戳
?
#重復的計劃任務
EVERY 時間(單位)的數量 時間單位 [STARTS 時戳][ENDS 時戳]
?
在兩種計劃任務中,時戳可以是任意的TIMESTAMP 和DATETIME 數據類型,要求提供的是將來的時間(大于CURRENT_TIMESTAMP),而且小于Unix時間的最后時間(等于或小于'2037-12-31 23:59:59')
?
時間單位是關鍵詞:YEAR,MONTH,DAY,HOUR,MINUTE 或者SECOND
?
3.[ON COMPLETION [NOT] PRESERVE]
COMPLETION 當單次計劃任務執行完畢后或當重復性的計劃任務執行到了ENDS階段。而聲明PRESERVE的作用是使事件在執行完畢后不會被Drop掉
?
4.[ENABLE|DESABLE]
ENABLE 開啟事件
DESABLE 關閉事件
?
5.COMMENT
注釋
?
6.DO?
sql_statement
執行的
sql
語句
?
三、通過設定全局變量event_scheduler 的值即可動態的控制事件調度器是否啟用。?
?
查看是否event_scheduler開啟
mysql> SHOW VARIABLES LIKE '%event%';
?
設置開啟
mysql
> SET GLOBAL event_scheduler=ON;
?
四、例子:
?
每分鐘插入一條日志:
DELIMITER //
CREATE EVENT `user_log_event` ON SCHEDULE EVERY 1 MINUTE STARTS '2010-12-27 00:00:00'?
ON COMPLETION NOT PRESERVE ENABLE DO?
BEGIN?
INSERT INTO log SET addtime=NOW();
END
//
?
調用
存儲過程
:
DELIMITER //
CREATE EVENT `user_log_event` ON SCHEDULE EVERY 1 DAY STARTS '2010-00-00 00:00:00'?
ON COMPLETION NOT PRESERVE ENABLE DO?
BEGIN
CALL user_log_prov();
END
//
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

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