MySQL Events學習筆記

wzq609發表於2015-08-27

【背景】隨著業務的變更,應用每天需要對系統裡面的所有客戶積分進行累計計算,在做整個操作的時候,系統的其他收銀等一些業務就會受到影響,所以經過確認在每天晚上23點,做一個定時的Events讓系統自動執行,以下是關於Events的相關學習文件;

 

【介紹】event_scheduler:時間排程器,是MySQL5.1.x版本中引入了一項新特性,在指定的時間單元內執行特定的任務,早期一些對資料定時性操作透過作業系統的crontable的操作,可以直接使用資料庫本身提供的功能。

 

【使用說明】

1、狀態檢視方法:

預設的情況下該功能是屬於關閉狀態,需要先進行啟用後才能使用該特性;

SHOW VARIABLES LIKE 'event_scheduler';

 

2、啟用和關閉

參考前面的引數文件修改方法,這邊有四種的方法進行修改

SET GLOBAL event_scheduler = 1;

SET @@global.event_scheduler = 1;

SET GLOBAL event_scheduler = ON;

SET @@global.event_scheduler = ON;

鍵值1或者ON表示開啟;0或者OFF表示關閉;

或者也可以在server的配置檔案((my.cnf, or my.ini on Windows systems)中設定event_scheduler=1,然後重啟伺服器

 

3、使用的方法

詳細語法:http://dev.mysql.com/doc/refman/5.5/en/event-scheduler.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}

 

4、檢視schema下的所有event

SHOW EVENTS FROM test \G;                        檢視test下面的所有event 
SELECT  event_schema,event_name,event_definition,interval_value,interval_field,last_executed,status
FROM `INFORMATION_SCHEMA`.`EVENTS`
ORDER BY EVENT_NAME;                               檢視資料庫下面所有schema的所有enent

 

5、enents內容的檢視

mysql> show create event event_vipview \G
*************************** 1. row ***************************
               Event: event_vipview
            sql_mode:
           time_zone: +08:00
        Create Event: CREATE DEFINER=`root`@`%` EVENT `event_vipview` ON SCHEDULE EVERY 1 DAY STARTS '2015-08-27 23:00:00' ON COMPLETION PRESERVE ENABLE DO call p_icrm_fm
character_set_client: utf8
collation_connection: utf8_general_ci
  Database Collation: utf8_general_ci
1 row in set (0.00 sec)

 

6、單個event的禁用和啟用

禁用:alter event event_name disable;

啟用:alter event event_name enable;

 

7、刪除event

drop event if exists event_name;

 

以上包含了管理event的所有相關資訊,也是我的第200篇文件,希望能對大家有用;

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/12679300/viewspace-1784410/,如需轉載,請註明出處,否則將追究法律責任。

相關文章