標籤:style blog http color io ar 資料 art div
1、開啟或關閉事件
1)查看事件是否開啟(兩種方式)
SHOW VARIABLES LIKE ‘event_scheduler‘;SELECT @@event_scheduler;
2)開啟mysql的事件(兩種方式)
SET GLOBAL event_scheduler = 1;SET GLOBAL event_scheduler = ON;
3)關閉mysql的事件
SET GLOBAL event_scheduler = OFF;SET @@global.event_scheduler = OFF;SET GLOBAL event_scheduler = 0;SET @@global.event_scheduler = 0;
2、增刪改事件文法
1)增加(建立)事件
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}
參數詳細說明:
DEFINER: 定義事件執行的時候檢查許可權的使用者。
ON SCHEDULE schedule: 定義執行的時間和時間間隔。
ON COMPLETION [NOT] PRESERVE: 定義事件是一次執行還是永久執行,預設為一次執行,即NOT PRESERVE。
ENABLE | DISABLE | DISABLE ON SLAVE: 定義事件建立以後是開啟還是關閉,以及在從上關閉。如果是從伺服器自動同步主上的建立事件的語句的話,會自動加上DISABLE ON SLAVE。
COMMENT ‘comment‘: 定義事件的注釋。
2)變更事件
ALTER [DEFINER = { user | CURRENT_USER }] EVENT event_name [ON SCHEDULE schedule] [ON COMPLETION [NOT] PRESERVE] [RENAME TO new_event_name] [ENABLE | DISABLE | DISABLE ON SLAVE] [COMMENT ‘comment‘] [DO event_body]
3)刪除事件
DROP EVENT [IF EXISTS] event_name;
3、用法
1)建立一個每隔3秒往test表中插入一條資料的事件,代碼如下:
CREATE EVENT IF NOT EXISTS test ON SCHEDULE EVERY 3 SECONDON COMPLETION PRESERVEDO INSERT INTO test(id,t1) VALUES(‘‘,NOW());
2)建立一個10分鐘後清空test表資料的事件,代碼如下:
CREATE EVENT IF NOT EXISTS testON SCHEDULEAT CURRENT_TIMESTAMP + INTERVAL 1 MINUTEDO TRUNCATE TABLE test.aaa;
3)建立一個在2012-08-23 00:00:00時刻清空test表資料的事件,代碼如下:
CREATE EVENT IF NOT EXISTS testON SCHEDULEAT TIMESTAMP ‘2012-08-23 00:00:00‘DO TRUNCATE TABLE test;
4)建立一個從2012年8月22日21點45分開始到10分鐘後結束,運行每隔3秒往test表中插入一條資料的事件,代碼如下:
CREATE EVENT IF NOT EXISTS test ON SCHEDULE EVERY 3 SECONDSTARTS ‘2012-08-22 21:49:00‘ ENDS ‘2012-08-22 21:49:00‘+ INTERVAL 10 MINUTEON COMPLETION PRESERVEDO INSERT INTO test(id,t1) VALUES(‘‘,NOW());
5)建立一個從2012-08-22 00:00:00時刻開始運行,每隔1天調用一次預存程序,40天后結束,代碼如下:
CREATE EVENT test ON SCHEDULE EVERY 1 DAYSTARTS ‘2012-08-22 00:00:00‘ENDS ‘2012-08-22 00:00:00‘+INTERVAL 40 DAYON COMPLETION PRESERVE
DO CALL test_add();
4、參考連結
http://blog.chinaunix.net/uid-20639775-id-3323098.html
mysql事件學習