mysql 定時任務的使用

來源:互聯網
上載者:User

標籤:image   建立   lte   .com   values   creat   second   innodb   disable   

mysql5.1.6增加了一個事件調度器(Event Scheduler),可以做定時任務(定時刪除記錄,定時資料統計),取代之前系統的計劃任務。mysql事件調度器可以精確到每秒執行一個任務。

事件調度器與觸發器的區別:事件調度器是基於特定時間周期來觸發執行某些任務,觸發器是基於某個表產生的事件來觸發。

 

一、查看是否開啟

> show variables like ‘event_scheduler‘;

二、開啟事件調度器

set global event_scheduler = on;

 這裡的設定,當mysql重啟後,又會自動關閉。如果需要一直開啟,需要在my.ini中配置如下:

event_scheduler = on

三、建立事件文法

CREATE EVENT [IF NOT EXISTS ] event_name ON SCHEDULE schedule [ ON COMPLETION [ NOT ] PRESERVE ] [ ENABLE | DISABLE ] [ COMMENT ‘注釋‘ ] DO SQL語句;schedule : 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 }

event_name:事件名,最大長度64個字元。

schedule:執行時間。

[ ON COMPLETION [ NOT ] PRESERVE ] :事件是否需要複用。

[ ENABLE | DISABLE ] :事件開啟或關閉。

四、關閉事件

ALTER EVENT event_name DISABLE;

五、開啟事件

ALTER EVENT event_name ENABLE;

六、刪除事件

DROP EVENT [IF EXISTS ] event_name;

七、查看所有事件

SHOW EVENTS; 

八、事件例子

我們先建立一個簡單的test表用於測試

CREATE TABLE `test` (  `id` int(11) unsigned NOT NULL AUTO_INCREMENT COMMENT ‘ID‘,  `now` datetime DEFAULT NULL COMMENT ‘時間‘,  PRIMARY KEY (`id`)) ENGINE=InnoDB DEFAULT CHARSET=utf8;

事件類型有兩種,一種是間隔觸發,一種是特定時間觸發

我們每隔一秒向test表插入一條記錄:

DROP EVENT IF EXISTS event_test;CREATE EVENT event_test ON SCHEDULE EVERY 1 SECOND STARTS ‘2017-08-22 11:57:00‘ ENDS ‘2017-08-22 12:00:00‘ON COMPLETION PRESERVE ENABLE COMMENT ‘每隔一秒向test表插入記錄‘DO INSERT INTO test VALUES(NULL, now());

我們指定時間來向test表插入一條記錄:

DROP EVENT IF EXISTS event_test2;CREATE EVENT event_test2ON SCHEDULE AT ‘2017-08-22 12:01:00‘ON COMPLETION PRESERVE ENABLE COMMENT ‘指定時間向test表插入記錄‘DO INSERT INTO test VALUES(999999, now());

 

mysql 定時任務的使用

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.