MySQL 事件調度器可替代系統 Cron 定時任務,完成資料庫內部的定時清理、統計、歸檔等工作。本文記錄啟用、建立、啟停、查看事件的完整語法。
SHOW VARIABLES LIKE '%sche%'; -- 查看狀態
SET GLOBAL event_scheduler = 1; -- 開啟 (0=關閉)
-- 每秒呼叫一次 e_test() 預存程序
CREATE EVENT IF NOT EXISTS event_test
ON SCHEDULE EVERY 1 SECOND
ON COMPLETION PRESERVE
DO CALL e_test();
-- 啟用
ALTER EVENT event_test ON COMPLETION PRESERVE ENABLE;
-- 禁用
ALTER EVENT event_test ON COMPLETION PRESERVE DISABLE;
-- 查看
SHOW EVENTS;
-- 刪除
DROP EVENT IF EXISTS event_test;
事件定義支援 AT timestamp (一次性) 與 EVERY interval (週期),ON COMPLETION PRESERVE 表示完成後保留事件定義。