mysql定時任務

delimiter //

-- 確保服務器事件計劃開啓 set global event_scheduler=1
-- 創建定時任務 like job

create event if not exists e_execut_publish_status
  on schedule every 1 day starts '2015-09-02 01:01:01'
  comment '定時任務:每天0點執行,更新t_publish表的c_status'

do
  begin

    call sp_auto_update_publish_status();

  end//

delimiter ;

1 mysql在5.x版本後支持自動定時任務功能

2 設置開啓定時任務: set global event_scheduler=1
設置方法A: mysql命令行輸入 set global event_scheduler=1
B:在配置文件my.cnf(linux環境)中,[mysqld] 下添加event_scheduler=1/on

3 查看定時任務
查看定時任務是否已經開啓: show variables like ‘%event%’;
查看目前系統的定時任務: show processlist/show events;
查看定時任務創建語句:show create event event_name;

4 語法分析
語法:CREATE EVENT [IF NOT EXISTS] event_name
ON SCHEDULE schedule
[ON COMPLETION [NOT] PRESERVE]
[ENABLE | DISABLE]
[COMMENT ‘comment’]
DO sql_statement;
說明:event_name :創建的event名字(唯一確定的);
ON SCHEDULE:計劃任務
schedule: 決定event的執行時間和頻率(注意時間一定要是將來的時間,過去的時間會出錯),有兩種形式 AT和EVERY
AT timestamp [+ INTERVAL interval] | EVERY interval [STARTS timestamp] [ENDS timestamp]
interval: quantity {YEAR | QUARTER | MONTH | DAY | HOUR | MINUTE | WEEK | SECOND | YEAR_MONTH | DAY_HOUR | DAY_MINUTE | DAY_SECOND | HOUR_MINUTE | HOUR_SECOND | MINUTE_SECOND}

[ON COMPLETION [NOT] PRESERVE]: 可選項,默認是ON COMPLETION NOT PRESERVE 即計劃任務執行完畢後自動drop該事件;ON COMPLETION PRESERVE則不會drop掉 ;

[COMMENT ‘comment’] :可選項,comment 用來描述event;相當註釋,最大長度64個字節
[ENABLE | DISABLE] :設定event的狀態,默認ENABLE:表示系統嘗試執行這個事件, DISABLE:關閉該事情,可以用alter修改

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章