mysql 启动事件 启动触发器功能
生活随笔
收集整理的這篇文章主要介紹了
mysql 启动事件 启动触发器功能
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
事件調度器有時也可稱為臨時觸發器(temporal triggers),
因為事件調度器是基于特定時間周期觸發來執行某些任務,而觸發器(Triggers)是基于某個表所產生的事件觸發的,區別也就在這里。?
在使用這個功能之前必須確保event_scheduler已開啟,可執行?
開啟:
①(開啟事件觸發器)
| 1 | SET?GLOBAL?event_scheduler?=?1; |
??
或我們可以在配置my.ini文件 中加上 event_scheduler = 1
②或 ?
| 1 | SET?GLOBAL?event_scheduler?=?ON; |
來開啟,也可以直接在啟動命令加上“–event_scheduler=1”,例如:?
mysqld ... --event_scheduler=1?
要查看當前是否已開啟事件調度器,可執行如下SQL:?
| 1 2 3 | SHOW?VARIABLES?LIKE?'event_scheduler';? 或? SELECT?@@event_scheduler; |
或?
擁有 SUPER 權限的賬戶執行 SHOW PROCESSLIST 就可以看到這個線程了。
在使用事件這個功能,首先要保證你的mysql的版本是5.1以上,然后還要查看你的mysql服務器上的事件是否開啟。
如果看到event_scheduler為on
或者PROCESSLIST中顯示有event_scheduler的信息說明就已經開啟了事件。如果顯示為off
或者在PROCESSLIST中查看不到event_scheduler的信息,那么就說明事件沒有開啟,我們需要開啟它。
其他:
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | --?開啟事件調度的支持 SET?GLOBAL?event_scheduler?=?1; --?列出事件 SHOW?EVENTS; SHOW?CREATE?EVENT?del_user; ??? --?查詢觸發器是否啟動。 SHOW?VARIABLES?LIKE?'event_scheduler';? --?定義存儲過程??(修改test表里面的id都為5) DELIMITER?// DROP?PROCEDURE?IF?EXISTS?usp_update_test; CREATE?PROCEDURE?usp_update_test() --?expire_interval:?the?unit?is?hour --?delete_per_count:?specify?the?count?do?every?delete?operation BEGIN ????DECLARE?id?INT; ????????SET?id=5;??? ????????update?test?set?id=id; END?// DELIMITER?; --?定義事件??(一分鐘執行一次上面的存儲過程) DROP?EVENT?IF?EXISTS?del_test; CREATE?EVENT?del_test ON?SCHEDULE?EVERY?1?MINUTE DO CALL?usp_update_test() |
本文轉自建波李 51CTO博客,原文鏈接:http://blog.51cto.com/jianboli/1884180,如需轉載請自行聯系原作者
總結
以上是生活随笔為你收集整理的mysql 启动事件 启动触发器功能的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Samba新漏洞
- 下一篇: mysql.service failed