国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數(shù)據(jù)庫 > MySQL > 正文

mysql定時任務 Event Scheduler用法詳解

2024-07-24 12:37:45
字體:
來源:轉載
供稿:網(wǎng)友

Event Scheduler是mysql新出的一個事件,他查一個計劃任務類的功能,我們可以通過在mysql中創(chuàng)建event來定時執(zhí)行一些sql語句,這個我們就完全不需要像以前一樣來利用系統(tǒng)的計劃任務來執(zhí)行定時任務了.

1.開啟

全局變量event_scheduler用來設定是否服務器端運行執(zhí)行計劃任務,該變量有如下三種值:

OFF:計劃任務處于停止狀態(tài),event scheduler線程沒有運行,是event_scheduler的默認值,執(zhí)行一下任意一條命令關閉,代碼如下:

  1. SET GLOBAL event_scheduler = OFF;  
  2. SET @@global.event_scheduler = OFF;  
  3. SET GLOBAL event_scheduler = 0;  
  4. SET @@global.event_scheduler = 0; 

ON:計劃任務處于運行狀態(tài),event scheduler線程啟動,并執(zhí)行所有的計劃任務,執(zhí)行一下任意一條命令開啟,代碼如下:

  1. SET GLOBAL event_scheduler = ON;  
  2. SET @@global.event_scheduler = ON;  
  3. SET GLOBAL event_scheduler = 1;  
  4. SET @@global.event_scheduler = 1; 

DISABLED:該值將致使計劃任務不可運行,運行MySql服務時候加上參數(shù),代碼如下:

--event-scheduler=DISABLED

或者在my.cnf 中設置,查看源代碼打印幫助.

1 event_scheduler=DISABLED

MySQL的Event Scheduler是根據(jù)預先安排的計劃進行數(shù)據(jù)庫操作的數(shù)據(jù)庫對象,可以看作是一種“時間觸發(fā)器”。Event實際上是被一個特殊的event scheduler線程執(zhí)行的,假如它正在運行的話,可以通過SHOW PROCESSLIST命令看到它。

2.創(chuàng)建

創(chuàng)建的基本語法是,代碼如下:

  1.  CREATE EVENT        (1)  
  2.  [IF NOT EXISTS]        (2)  
  3.  event_name         (3)  
  4.  ON SCHEDULE schedule      (4)  
  5.  [ON COMPLETION [NOT] PRESERVE]   (5)  
  6.  [ENABLE | DISABLE]       (6)  
  7.  [COMMENT 'comment']       (7)  
  8.  DO sql_statement        (8) 

逐條介紹:

(1)創(chuàng)建Event嘛,這倆關鍵字當然不能少了

(2)如果不存在同名的數(shù)據(jù)庫對象才創(chuàng)建

(3)計劃任務的名字,作為數(shù)據(jù)庫對象,都有一個本庫內(nèi)唯一的名字做標識

(4)計劃任務的計劃,重點就在這兒,有兩個關鍵字來設定任務的執(zhí)行計劃:AT和EVERY:AT指定的是一個一次性計劃,后面跟著一個時間戳,后續(xù)的sql語句將在指定的時間被執(zhí)行一次.

EVERY指定的是一個周期性計劃,在該子句中可以指定從某時間點到某時間點期間,每隔某周期就執(zhí)行一次該任務,

(5)任務整個執(zhí)行完畢后,該計劃任務對象是否還在數(shù)據(jù)庫中保留,默認不保留.

(6)有效或失效,默認有效.

(7)真正要執(zhí)行的語句.

3.示例

1.每10秒鐘向myschema.mytable表中插入時間戳,代碼如下:

CREATE EVENT e_store_ts ON SCHEDULE EVERY 10 SECOND DO INSERT INTO myschema.mytable VALUES (UNIX_TIMESTAMP());

2.在2008-02-06 23:59:00開始的一年內(nèi),每隔1小時就刪除掉messages表的早先的10條記錄,代碼如下:

  1. CREATE EVENT e_hourly  
  2.            ON SCHEDULE  
  3.            EVERY 1 HOUR STARTS ’2007-02-10 23:59:00′ ENDS ’2008-02-10 23:59:00′   --Vevb.com 
  4.            DO  
  5.         DELETE FROM messages limit 10; 

4.查看EVENT,代碼如下:

  1. mysql>SELECT * FROM INFORMATION_SCHEMA.EVENTS 
  2.      >   WHERE EVENT_NAME='e_store_ts' 
  3.      >   AND EVENT_SCHEMA='myschema'
  4. *************************** 1. row *************************** 
  5.    EVENT_CATALOG: NULL 
  6.     EVENT_SCHEMA: myschema 
  7.       EVENT_NAME: e_store_ts 
  8.          DEFINER: jon@ghidora 
  9.       EVENT_BODY: SQL 
  10. EVENT_DEFINITION: INSERT INTO myschema.mytable VALUES (UNIX_TIMESTAMP()) 
  11.       EVENT_TYPE: RECURRING 
  12.       EXECUTE_AT: NULL 
  13.   INTERVAL_VALUE: 5 
  14.   INTERVAL_FIELD: SECOND 
  15.         SQL_MODE: NULL 
  16.           STARTS: 0000-00-00 00:00:00 
  17.             ENDS: 0000-00-00 00:00:00 
  18.           STATUS: ENABLED 
  19.    ON_COMPLETION: NOT PRESERVE 
  20.          CREATED: 2006-02-09 22:36:06 
  21.     LAST_ALTERED: 2006-02-09 22:36:06 
  22.    LAST_EXECUTED: NULL 
  23.    EVENT_COMMENT: 
  24. 1 row in set (0.00 sec) 

5.刪除EVENT,代碼如下:

  1. DELETE FROM mysql.event 
  2.     WHERE db = 'myschema' 
  3.       AND definer = 'jon@ghidora' 
  4.       AND name = 'e_insert';

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 常熟市| 车致| 顺平县| 贵溪市| 广宗县| 托克逊县| 九龙县| 通道| 大悟县| 黔江区| 玉溪市| 开江县| 开江县| 新沂市| 南投市| 遵化市| 大埔县| 扎兰屯市| 隆德县| 怀宁县| 八宿县| 中牟县| 基隆市| 北宁市| 启东市| 庐江县| 衡阳市| 涪陵区| 杂多县| 岐山县| 泽普县| 于田县| 禄丰县| 梧州市| 奇台县| 荣昌县| 库尔勒市| 柳州市| 娱乐| 上饶市| 加查县|