mysql 启动事件 启动触发器功能
事件調(diào)度器有時(shí)也可稱為臨時(shí)觸發(fā)器(temporal triggers),
因?yàn)槭录{(diào)度器是基于特定時(shí)間周期觸發(fā)來(lái)執(zhí)行某些任務(wù),而觸發(fā)器(Triggers)是基于某個(gè)表所產(chǎn)生的事件觸發(fā)的,區(qū)別也就在這里。?
在使用這個(gè)功能之前必須確保event_scheduler已開啟,可執(zhí)行?
開啟:
①(開啟事件觸發(fā)器)
| 1 | SET?GLOBAL?event_scheduler?=?1; |
??
或我們可以在配置my.ini文件 中加上 event_scheduler = 1
②或 ?
| 1 | SET?GLOBAL?event_scheduler?=?ON; |
來(lái)開啟,也可以直接在啟動(dòng)命令加上“–event_scheduler=1”,例如:?
mysqld ... --event_scheduler=1?
要查看當(dāng)前是否已開啟事件調(diào)度器,可執(zhí)行如下SQL:?
| 1 2 3 | SHOW?VARIABLES?LIKE?'event_scheduler';? 或? SELECT?@@event_scheduler; |
或?
擁有 SUPER 權(quán)限的賬戶執(zhí)行 SHOW PROCESSLIST 就可以看到這個(gè)線程了。
在使用事件這個(gè)功能,首先要保證你的mysql的版本是5.1以上,然后還要查看你的mysql服務(wù)器上的事件是否開啟。
如果看到event_scheduler為on
或者PROCESSLIST中顯示有event_scheduler的信息說(shuō)明就已經(jīng)開啟了事件。如果顯示為off
或者在PROCESSLIST中查看不到event_scheduler的信息,那么就說(shuō)明事件沒(méi)有開啟,我們需要開啟它。
其他:
| 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 | --?開啟事件調(diào)度的支持 SET?GLOBAL?event_scheduler?=?1; --?列出事件 SHOW?EVENTS; SHOW?CREATE?EVENT?del_user; ??? --?查詢觸發(fā)器是否啟動(dòng)。 SHOW?VARIABLES?LIKE?'event_scheduler';? --?定義存儲(chǔ)過(guò)程??(修改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?; --?定義事件??(一分鐘執(zhí)行一次上面的存儲(chǔ)過(guò)程) DROP?EVENT?IF?EXISTS?del_test; CREATE?EVENT?del_test ON?SCHEDULE?EVERY?1?MINUTE DO CALL?usp_update_test() |
本文轉(zhuǎn)自建波李 51CTO博客,原文鏈接:http://blog.51cto.com/jianboli/1884180,如需轉(zhuǎn)載請(qǐng)自行聯(lián)系原作者
總結(jié)
以上是生活随笔為你收集整理的mysql 启动事件 启动触发器功能的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: Samba新漏洞
- 下一篇: mysql.service failed