定時任務功能的開啟:
方法1:
SET GLOBAL event_scheduler = 1;
或者:SET GLOBAL event_scheduler = ON;
注意:這種方法在重啟mysql時就又會失效
方法2:
my.ini or my.cnf 中的
[mysqld]
添加 event_scheduler=1
或者 event_scheduler=ON
注意:這種方法在重啟mysql之后也不會失效,意思是每次開啟Mysql服務器就會將event_scheduler=ON運行一遍
定時任務功能的關閉:
SET GLOBAL event_scheduler = 0;
或者:SET GLOBAL event_scheduler = OFF;
就會將定時任務功能關閉
理解:關閉定時任務功能后,你之前創建的定時任務就不會再運行了
定時任務功能的定義:
一個示例:
DROP EVENT IF EXISTS event_test;
CREATE EVENT event_test
ON SCHEDULE EVERY 1 day STARTS date_add(concat(current_date(), ' 03:00:00'), interval 0 second)
ON COMPLETION PRESERVE ENABLE
DO
insert into test values(2,20);
解釋:
ON SCHEDULE
- ON SCHEDULE 計劃任務,有兩種設定計劃任務的方式:
1. AT 時間戳,用來完成單次的計劃任務。
2. EVERY 時間(單位)的數量時間單位[STARTS 時間戳] [ENDS時間戳],用來完成重復的計劃任務。
STARTS date_add(concat(current_date(), ' 00:00:00'), interval 0 second) 指定定時任務開始的時間為今天的03:00:00,那么之后應該每天凌晨執行
[ON COMPLETION [NOT] PRESERVE]
ON COMPLETION參數表示"當這個事件不會再發生的時候",即當單次計劃任務執行完畢后或當重復性的計劃任務執行到了ENDS階段。而PRESERVE的作用是使事件在執行完畢后不會被Drop掉,建議使用該參數,以便于查看EVENT具體信息。[ENABLE | DISABLE]
參數Enable和Disable表示設定事件的狀態。Enable表示系統將執行這個事件。Disable表示系統不執行該事件。
可以用如下命令關閉或開啟事件:
ALTER EVENT event_name ENABLE/DISABLE[COMMENT 'comment']
注釋會出現在元數據中,它存儲在information_schema表的COMMENT列,最大長度為64個字節。
'comment'表示將注釋內容放在單引號之間,建議使用注釋以表達更全面的信息。
定時任務的查看:
SHOW EVENTS;