首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

MySQL Event Scheduler 定時任務完整入門

     編輯:MySQL 資料庫相關知識

啟用事件調度器

-- 查看狀態
SHOW VARIABLES LIKE '%sche%';

-- 啟用(四種方式任一)
SET GLOBAL event_scheduler = 1;
SET @@global.event_scheduler = 1;
SET GLOBAL event_scheduler = ON;
SET @@global.event_scheduler = ON;

-- 關閉同理設為 0/OFF

建立定時事件

-- 每秒呼叫一次 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;

排程語法速查

  • EVERY 1 SECOND / MINUTE / HOUR / DAY / WEEK / MONTH / YEAR
  • STARTS '2024-01-01 00:00:00' 指定開始時間
  • ENDS '2024-12-31 23:59:59' 指定結束時間
  • AT '2024-01-01 00:00:00' 單次執行

注意事項

  • 事件執行權限取決於 DEFINER 帳號權限
  • 長時間運行的事件會阻塞後續排程,建議在存儲過程中處理邏輯
  • ON COMPLETION PRESERVE 完成後保留事件,NOT PRESERVE 則自動刪除
  • 生產環境建議在配置檔 [mysqld] 區段加入 event_scheduler = ON 永久啟用
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved