在系統管理或者數據庫管理中,經常要周期性的執行某一個命令或者sql語句。這個時候就會用到mysql事件,使用這個功能必須保證是mysql的版本是5.1以上。
1.首先要查看事件是否開啟了,
SHOW?VARIABLES?LIKE?'event_scheduler'; SELECT?@@event_scheduler; SHOW?PROCESSLIST;
之星sql
2.我們先開啟mysql事件,1,通過動態參數修改:SET GLOBAL event_scheduler = ON;注意:還是要在my.cnf中添加event_scheduler=ON。因為如果沒有添加的話,mysql重啟事件又會回到原來的狀態了。
3.下面我創建一個測試的數據庫表,
CREATE?TABLE?`test`?(?? `ID`?int(11)?NOT?NULL?AUTO_INCREMENT,?? `lpnam`?datetime?DEFAULT?NULL,?? PRIMARY?KEY?(`id`)) ENGINE=InnoDB? AUTO_INCREMENT=106? DEFAULT?CHARSET=utf8
創建一個數據庫表做為測試
4.下面我們創建mysql事件,
CREATE?EVENT?IF?NOT?EXISTS?test123?ON?SCHEDULE?EVERY?3?SECOND ON?COMPLETION?PRESERVE DO?INSERT?INTO?ceshisy(lpname)?VALUES(NOW());
執行sql創建mysql事件
5.創建完成以后我們看一次是不是執行了,查看一下數據庫表
6.總結一下語法:
DEFINER:?定義事件執行的時候檢查權限的用戶。 ON?SCHEDULE?schedule:?定義執行的時間和時間間隔。 ON?COMPLETION?[NOT]?PRESERVE:?定義事件是一次執行還是永久執行,默認為一次執行,即NOT?PRESERVE。 ENABLE?|?DISABLE?|?DISABLE?ON?SLAVE:?定義事件創建以后是開啟還是關閉,以及在從上關閉。如果是從服務器自動同步主上的創建事件的語句的話,會自動加上DISABLE?ON?SLAVE。 COMMENT?'comment':?定義事件的注釋。
? 版權聲明
文章版權歸作者所有,未經允許請勿轉載。
THE END