MySQL create event

event

event,即“事件”,是與一個時間表相關聯的存儲程式,其中時間表用業定義事件發生的時間、次數以及何時失效。因此“事件”非常適合用來執行各種無人值守的系統管理任務,如定期更新匯總報告、清理過期失效的數據、對日誌數據表進行輪轉等。
MySQL 5.1.6及更高版本擁有事件調試器,用以支持事件創建與執行,這樣我們就可以把對資料庫的操作安排在預定的時間執行。

create event

create event的語法如下:

CREATE
[DEFINER = { user | CURRENT_USER }]
EVENT
[IF NOT EXISTS]
event_name
ON SCHEDULE schedule
[ON COMPLETION [NOT] PRESERVE]
[ENABLE | DISABLE | DISABLE ON SLAVE]
[COMMENT 'comment']
DO event_body;
其中:
schedule:
AT timestamp [+ INTERVAL interval] ...
| EVERY interval
[STARTS timestamp [+ INTERVAL interval] ...]
[ENDS timestamp [+ INTERVAL interval] ...]
interval:
quantity {YEAR | QUARTER | MONTH | DAY | HOUR | MINUTE |
WEEK | SECOND | YEAR_MONTH | DAY_HOUR | DAY_MINUTE |
DAY_SECOND | HOUR_MINUTE | HOUR_SECOND | MINUTE_SECOND}

事件的啟動與關閉

事件調試器默認是關閉的。如果需要使用事件,必須先啟動事件調試器。有以下兩種啟動方法:
1、動態修改
在MySQL運行時,可以查看事件調試器的狀態:
show variables like 'event_scheduler';
如果想在系統運行時停止或啟動事件調試器,可以通過改變event_scheduler系統變數的值來達到的目的。注意:它是一個GLOBAL變數,當前用戶必須擁有SUPER許可權才能修改它。
set global event_scheduler = OFF; # or 0
set global event_scheduler = ON; # of 1
2、修改配置檔案
在MySQL配置檔案中,加入以下語句
[mysqld]
event_scheduler = ON

簡單示例一


CREATE EVENT myevent
ON SCHEDULE AT CURRENT_TIMESTAMP + INTERVAL 1 HOUR
DO
UPDATE myschema.mytable SET mycol = mycol + 1;

這段SQL語句創建了一個名為"myevent"的事件,該事件每隔一個小時將mytable中的mycol自增1。

相關詞條

熱門詞條

聯絡我們