標籤:mysql 事件調度 定期執行任務
使用mysql的事件功能幾個前提:
一:使用的版本必須是5.1或者以上的,因為5.1以後才支援此功能
二:檢查是否開啟了事件功能:
SHOW VARIABLES LIKE ‘event_scheduler’;
顯示OFF則為關閉(系統預設是關閉的)
開啟命令為:
SET GLOBAL event_scheduler =1;
或者
SET GLOBAL event_scheduler = ON;
關閉事件功能的命令為:
SET GLOBAL event_scheduler = 0;
或者
SET GLOBAL event_scheduler = OFF;
下面實現幾個簡單的執行個體
執行個體一:每秒插入一條記錄到eventtest1表中
CREATE EVENT event1 ON SCHEDULE EVERY 1SECOND DO INSERT INTO eventtest1 VALUES(NULL,CURRENT_TIMESTAMP);
SELECT * FROM eventtest1;
臨時關閉事件
ALTER EVENT event1 DISABLE;
開啟事件
ALTER EVENT event1 ENABLE;
修改事件為沒5s執行一次
ALTER EVENT event1 ON SCHEDULE EVERY 5SECOND;
刪除事件
DROP EVENT event6;
執行個體二:每天定時清空eventtest1表
CREATE EVENT event2
ON SCHEDULE EVERY 1 DAY
DO TRUNCATE TABLE eventtest1;
執行個體三:2014-12-31 23:59:59清空eventtest1表
CREATE EVENT event3
ON SCHEDULE AT TIMESTAMP ‘2014-12-3123:59:59‘
DO TRUNCATE TABLE eventtest1;
執行個體四:10天后開始每天清空eventtest1表
CREATE EVENT event4
ON SCHEDULE EVERY 1 DAY
STARTS CURRENT_TIMESTAMP + INTERVAL 10 DAY
DO TRUNCATE TABLE eventtest1;
執行個體五:每天清空eventtest1表,2個月後停止執行
CREATE EVENT event5
ON SCHEDULE EVERY 1 DAY
ENDS CURRENT_TIMESTAMP + INTERVAL 2 MONTH
DO TRUNCATE TABLE eventtest1;
執行個體六:5天后開始每天清空eventtest1表,3個月後停止執行
CREATE EVENT event6
ON SCHEDULE EVERY 1 DAY
STARTS CURRENT_TIMESTAMP + INTERVAL 5 DAY
ENDS CURRENT_TIMESTAMP + INTERVAL 3 MONTH
DO TRUNCATE TABLE eventtest1;
註:此次實驗做完後,下次再做時如果建立表和事件都能成功,但是表不會增加,一定
要查看下事件功能是不是開啟的,如果關機或者其他原因,事件功能會自動關閉的
本文出自 “keke” 部落格,請務必保留此出處http://keke51cto.blog.51cto.com/6467511/1547238
mysql中的事件調度功能