日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

MySQL 事件調(diào)度器 定時(shí)調(diào)度

 ~~無語~~ 2016-09-13

MySQL 5.1 引入的時(shí)間調(diào)度器可以作為定時(shí)任務(wù)調(diào)度器,取代系統(tǒng)的cron調(diào)度,調(diào)度時(shí)間可以精確到秒,實(shí)時(shí)性好。

開啟事件調(diào)度器

首先查看是否開啟了事件調(diào)度器: show variables like "event_scheduler";SELECT @@event_scheduler; 。

開啟事件調(diào)度器: SET GLOBAL event_scheduler = ON; ,這個(gè)命令需要具有 SUPER 權(quán)限才能執(zhí)行,可以用 root 用戶來執(zhí)行,說明是作用在整個(gè)數(shù)據(jù)庫服務(wù)上的,而不單是某個(gè)數(shù)據(jù)庫實(shí)例。

查看事件的執(zhí)行情況

SELECT * FROM information_schema.EVENTS;

創(chuàng)建事件

語法:

CREATE  EVENT  [IF  NOT EXISTS]  event_name
     ON  SCHEDULE  schedule
     [ON  COMPLETION  [NOT]  PRESERVE]
     -- 執(zhí)行完后是否保留事件,默認(rèn)為NOT PRESERVE,也就是非周期性任務(wù)執(zhí)行完后刪除。
     [ENABLE  |  DISABLE]                 -- 開啟或關(guān)閉事件
     [COMMENT  'comment']                 --  事件說明
     DO   sql_statement;                  --  要執(zhí)行的 sql 語句

schedule:
     AT  TIMESTAMP  [+INTERVAL  INTERVAL_VAL]
--  AT  用于在指定時(shí)間點(diǎn)執(zhí)行一次。

     EVERY  INTERVAL  [STARTS  TIMESTAMP]  [END  TIMESTAMP]
--  EVERY  用于每隔指定的時(shí)間重復(fù)執(zhí)行。
--  如果沒有指定開始時(shí)間和結(jié)束時(shí)間,那么默認(rèn)的開始時(shí)間就是當(dāng)前結(jié)束時(shí)間,沒有結(jié)束時(shí)間。


INTERVAL_VAL:
quantity {YEAR | QUARTER | MONTH | DAY | HOUR | MINUTE |
WEEK | SECOND | YEAR_MONTH | DAY_HOUR | DAY_MINUTE |
DAY_SECOND | HOUR_MINUTE | HOUR_SECOND | MINUTE_SECOND} 

--   quantity 是數(shù)值,花括號里的是的時(shí)間單位。

修改事件

ALTER EVENT event_name
     [ON SCHEDULE schedule]            --  設(shè)定調(diào)度時(shí)間
     [RENAME TO new_event_name]        --  重命名為另一個(gè)名字
     [ON COMPLETION [NOT] PRESERVE]    -- 執(zhí)行完后是否保留事件,默認(rèn)不保留
     [COMMENT 'comment']               --  事件說明
     [ENABLE | DISABLE]                -- 開啟或關(guān)閉事件
     [DO sql_statement]                --  要執(zhí)行的 sql 語句

刪除事件

DROP   EVENT  eventName;

DROP   EVENT  IF  EXISTS  eventName;

代碼示例

--  創(chuàng)建一個(gè)測試表
CREATE  TABLE aaa  (timeline  TIMESTAMP)


--  每隔一秒鐘插入一條記錄,這里沒有指定時(shí)間范圍,就從當(dāng)前時(shí)間開始一直重復(fù)調(diào)度。
CREATE  EVENT  e_test
     ON  SCHEDULE  EVERY  1  SECOND
     DO  INSERT  INTO  aaa  VALUES(CURRENT_TIMESTAMP);

--   創(chuàng)建事件但不調(diào)度執(zhí)行
CREATE  EVENT  e_test
     ON  SCHEDULE  EVERY  1  SECOND
     DISABLE
     COMMENT  'not enabled, just for later use .'
     DO  INSERT  INTO  aaa  VALUES(CURRENT_TIMESTAMP);


--   修改事件的調(diào)度間隔,并使能被調(diào)度。
ALTER  EVENT  e_test
     ON  SCHEDULE  EVERY  10  SECOND
     ENABLE;


--   在指定時(shí)間點(diǎn)執(zhí)行一次
CREATE  EVENT  e_test
     ON  SCHEDULE  AT  TIMESTAMP  '2014-01-27 23:59:50'
     DO  TRUNCATE  TABLE  aaa;


--   在指定時(shí)間點(diǎn)執(zhí)行一次,執(zhí)行完后保留事件。
CREATE  EVENT  e_test
     ON  SCHEDULE  AT  TIMESTAMP  '2014-01-27 23:59:50'
     ON  COMPLETION   PRESERVE
     DO  TRUNCATE  TABLE  aaa;


--  從某個(gè)時(shí)間范圍內(nèi)周期性地執(zhí)行任務(wù)
CREATE  EVENT  e_test
     ON  SCHEDULE  EVERY  1  DAY
     STARTS  TIMESTAMP  '2014-01-27 23:59:50'
     ENDS  TIMESTAMP  '2014-02-27 23:59:50'
     DO  TRUNCATE  TABLE  aaa;


--   刪除事件
DROP   EVENT  e_test;


--   如果存在,刪除事件。
DROP   EVENT  IF  EXISTS  e_test;

    本站是提供個(gè)人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多