mysql事件學習

來源:互聯網
上載者:User

標籤:style   blog   http   color   io   ar   資料   art   div   

1、開啟或關閉事件

    1)查看事件是否開啟(兩種方式)

SHOW VARIABLES LIKE ‘event_scheduler‘;SELECT @@event_scheduler;

   2)開啟mysql的事件(兩種方式)

SET GLOBAL event_scheduler = 1;SET GLOBAL event_scheduler = ON;

   3)關閉mysql的事件

SET GLOBAL event_scheduler = OFF;SET @@global.event_scheduler = OFF;SET GLOBAL event_scheduler = 0;SET @@global.event_scheduler = 0;

 

2、增刪改事件文法

  1)增加(建立)事件

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}

參數詳細說明:

DEFINER: 定義事件執行的時候檢查許可權的使用者。

ON SCHEDULE schedule: 定義執行的時間和時間間隔。

ON COMPLETION [NOT] PRESERVE: 定義事件是一次執行還是永久執行,預設為一次執行,即NOT PRESERVE。

ENABLE | DISABLE | DISABLE ON SLAVE: 定義事件建立以後是開啟還是關閉,以及在從上關閉。如果是從伺服器自動同步主上的建立事件的語句的話,會自動加上DISABLE ON SLAVE。

COMMENT ‘comment‘: 定義事件的注釋。

  2)變更事件

ALTER    [DEFINER = { user | CURRENT_USER }]    EVENT event_name    [ON SCHEDULE schedule]    [ON COMPLETION [NOT] PRESERVE]    [RENAME TO new_event_name]    [ENABLE | DISABLE | DISABLE ON SLAVE]    [COMMENT ‘comment‘]    [DO event_body]

  3)刪除事件

DROP EVENT [IF EXISTS] event_name;
3、用法

  1)建立一個每隔3秒往test表中插入一條資料的事件,代碼如下:

CREATE EVENT IF NOT EXISTS test ON SCHEDULE EVERY 3 SECONDON COMPLETION PRESERVEDO INSERT INTO test(id,t1) VALUES(‘‘,NOW());

  2)建立一個10分鐘後清空test表資料的事件,代碼如下:

CREATE EVENT IF NOT EXISTS testON SCHEDULEAT CURRENT_TIMESTAMP + INTERVAL 1 MINUTEDO TRUNCATE TABLE test.aaa;

  3)建立一個在2012-08-23 00:00:00時刻清空test表資料的事件,代碼如下:

CREATE EVENT IF NOT EXISTS testON SCHEDULEAT TIMESTAMP ‘2012-08-23 00:00:00‘DO TRUNCATE TABLE test;

  4)建立一個從2012年8月22日21點45分開始到10分鐘後結束,運行每隔3秒往test表中插入一條資料的事件,代碼如下:

CREATE EVENT IF NOT EXISTS test ON SCHEDULE EVERY 3 SECONDSTARTS ‘2012-08-22 21:49:00‘ ENDS ‘2012-08-22 21:49:00‘+ INTERVAL  10 MINUTEON COMPLETION PRESERVEDO INSERT INTO test(id,t1) VALUES(‘‘,NOW());

  5)建立一個從2012-08-22 00:00:00時刻開始運行,每隔1天調用一次預存程序,40天后結束,代碼如下:

CREATE EVENT test ON SCHEDULE EVERY 1 DAYSTARTS ‘2012-08-22 00:00:00‘ENDS ‘2012-08-22 00:00:00‘+INTERVAL 40 DAYON COMPLETION PRESERVE 
DO CALL test_add();
4、參考連結

http://blog.chinaunix.net/uid-20639775-id-3323098.html

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.