標籤:啟動觸發器
事件調度器有時也可稱為臨時觸發器(temporal triggers),
因為事件調度器是基於特定時間周期觸發來執行某些任務,而觸發器(Triggers)是基於某個表所產生的事件觸發的,區別也就在這裡。
在使用這個功能之前必須確保event_scheduler已開啟,可執行
開啟:
①(開啟事件觸發程序)
SET GLOBAL event_scheduler = 1;
或我們可以在配置my.ini檔案 中加上 event_scheduler = 1
②或
SET GLOBAL event_scheduler = ON;
來開啟,也可以直接在啟動命令加上“–event_scheduler=1”,例如:
mysqld ... --event_scheduler=1
要查看當前是否已開啟事件調度器,可執行如下SQL:
SHOW VARIABLES LIKE ‘event_scheduler‘; 或 SELECT @@event_scheduler;
或
擁有 SUPER 許可權的賬戶執行 SHOW PROCESSLIST 就可以看到這個線程了。
在使用事件這個功能,首先要保證你的mysql的版本是5.1以上,然後還要查看你的mysql伺服器上的事件是否開啟。
如果看到event_scheduler為on
或者PROCESSLIST中顯示有event_scheduler的資訊說明就已經開啟了事件。如果顯示為off
或者在PROCESSLIST中查看不到event_scheduler的資訊,那麼就說明事件沒有開啟,我們需要開啟它。
其他:
-- 開啟事件調度的支援SET GLOBAL event_scheduler = 1;-- 列出事件SHOW EVENTS;SHOW CREATE EVENT del_user; -- 查詢觸發器是否啟動。SHOW VARIABLES LIKE ‘event_scheduler‘; -- 定義預存程序 (修改test表裡面的id都為5)DELIMITER //DROP PROCEDURE IF EXISTS usp_update_test;CREATE PROCEDURE usp_update_test()-- expire_interval: the unit is hour-- delete_per_count: specify the count do every delete operationBEGIN DECLARE id INT;SET id=5; update test set id=id;END //DELIMITER ;-- 定義事件 (一分鐘執行一次上面的預存程序)DROP EVENT IF EXISTS del_test;CREATE EVENT del_testON SCHEDULE EVERY 1 MINUTEDOCALL usp_update_test()
本文出自 “JianBo” 部落格,請務必保留此出處http://jianboli.blog.51cto.com/12075002/1884180
mysql 啟動事件 啟動觸發器功能