2014年9月28日 星期日

讓MySQL定期執行特定指令:Schedule Event

  • 檢視MySQL的event scheduler是否啟動
SHOW PROCESSLIST \G;

預設event scheduler 並沒有啟動,只會看到如下的結果:


  • 啟動event scheduler
SET GLOBAL event_scheduler = ON;

執行以上指令後,再檢視show processlist\G,可看到多了一個event_scheduler的Daemon。



  • 建立schedule event
CREATE EVENT EveryMinuteEvent
    ON SCHEDULE
      EVERY 1 MINUTE
    COMMENT '每分鐘執行一次'
    DO
      INSERT INTO  table1 (  field1 ) VALUES (NOW())

  • mysql 資料庫的 event 資料表
建立以上schedule event之後,可在mysql資料庫下的event資料表可看到新增一筆如下資料:


之後每過一分鐘在測試的資料表中將會看到新增一筆記錄當下時間的資料:


  • 停用schedule event
ALTER EVENT EveryMinuteEvent DISABLE;
  • 刪除schedule event
DROP EVENT EveryMinuteEvent;

沒有留言:

張貼留言