1. 程式人生 > >MySQL-定時任務

MySQL-定時任務

sys event tar mod mic mysql- 計劃任務 sts res

上周遇到了需要每天定時執行的任務,之前用Java寫了個小程序,由於客戶部署時間不確定,而我又能遠程上客戶生產環境的數據庫,所以借助MySQL的定時任務來實現.
自 MySQL5.1.6起,增加了一個非常有特色的功能–事件調度器(Event Scheduler),可以用做定時執行某些特定任務(例如:刪除記錄、對數據進行匯總等等),來取代原先只能由操作系統的計劃任務來執行的工作。更值得 一提的是MySQL的事件調度器可以精確到每秒鐘執行一個任務,而操作系統的計劃任務(如:Linux下的CRON或Windows下的任務計劃)只能精 確到每分鐘執行一次。對於一些對數據實時性要求比較高的應用(例如:股票、比分等)就非常適合。

一. 定時任務相關的命令

二. 創建定時任務 1.簡單的實例 (從2017-07-19 09:50:00開始,每隔10秒執行一次)
  1. 2.語法
三.常見問題
  1. ON COMPLETION PRESERVE 和 ON COMPLETION not PRESERVE 區別?
    當為on completion preserve 的時候,當event到期了,event會被disable,但是該event還是會存在
    當為on completion not preserve的時候,當event到期的時候,該event會被自動刪除掉.
  2. 在event事件中:ON SCHEDULE 計劃任務,有兩種設定計劃任務的方式: 
    1. AT 時間戳,用來完成單次的計劃任務。
    2. EVERY 時間(單位)的數量時間單位[STARTS 時間戳] [ENDS時間戳],用來完成重復的計劃任務。 在兩種計劃任務中,時間戳可以是任意的TIMESTAMP 和DATETIME 數據類型,時間戳需要大於當前時間。
    在重復的計劃任務中,時間(單位)的數量可以是任意非空(Not Null)的整數式,時間單位是關鍵詞:YEAR,MONTH,DAY,HOUR,MINUTE 或者SECOND。
  3. 時間調度器 和 觸發器(Triggers)的區別?
    事件調度器有時也可稱為臨時觸發器(temporal triggers),因為事件調度器是基於特定時間周期觸發來執行某些任務;
    而觸發器是基於某個表所產生的事件觸發的。
    




null

MySQL-定時任務