[MySQL]使用EVENT的方式

有關資料庫的討論, 都可以在這發表哦~~
回覆文章
頭像
tim
文章: 1298
註冊時間: 2008年 11月 26日, 00:49

[MySQL]使用EVENT的方式

文章 tim » 2013年 5月 16日, 16:08

在 MySQL 中, 使用類似排程工作的方式, 可以用 EVENT 來實現, 實務上就是像一些批次作業等行為, 把 script 整理好, 對資料庫進行作業, 十分方便, 使用指令的方式建立如下:

http://dev.mysql.com/doc/refman/5.1/en/ ... event.html

代碼: 選擇全部

CREATE
    [DEFINER = { user | CURRENT_USER }]
    EVENT
    [IF NOT EXISTS]
    event_name
    ON SCHEDULE schedule
    [ON COMPLETION [NOT] PRESERVE]
    [ENABLE | DISABLE | DISABLE ON SLAVE]
    [COMMENT 'comment']
    DO event_body;

schedule:
    AT timestamp [+ INTERVAL interval] ...
  | EVERY interval
    [STARTS timestamp [+ INTERVAL interval] ...]
    [ENDS timestamp [+ INTERVAL interval] ...]

interval:
    quantity {YEAR | QUARTER | MONTH | DAY | HOUR | MINUTE |
              WEEK | SECOND | YEAR_MONTH | DAY_HOUR | DAY_MINUTE |
              DAY_SECOND | HOUR_MINUTE | HOUR_SECOND | MINUTE_SECOND}
這個是依存在資料庫層級的 EVENT 物件, 在滙出時, 是跟著資料庫走的, 不是系統級的物件, 這是特別要注意的地方!!

另外, 設定好的 EVENT 執行是需要一個 EVENT SCHEDULE 的 process 來運作, 若沒有啟動, 建立好的 EVENT 是不會被執行的, 請參閱: http://dev.mysql.com/doc/refman/5.1/en/ ... ation.html

所以記得若要使用 EVENT 一定得記得啟用 EVENT SCHEDULE.

啟用指令如下:
(4句都一樣, 擇一執行即可.)

代碼: 選擇全部

SET GLOBAL event_scheduler = ON;
SET @@global.event_scheduler = ON;
SET GLOBAL event_scheduler = 1;
SET @@global.event_scheduler = 1;
多多留言, 整理文章, 把經驗累積下來.....

回覆文章