先來看一下它的語法:
CREATE EVENT [IF NOT EXISTS] event_name ON SCHEDULE schedule [ON COMPLETION [NOT] PRESERVE] [ENABLE | DISABLE] [COMMENT ‘comment’] DO sql_statement / call proce() ; –這可以是sql語句或 call 存儲過程名() schedule: AT TIMESTAMP [+ INTERVAL INTERVAL] | EVERY INTERVAL [STARTS TIMESTAMP] [ENDS TIMESTAMP] INTERVAL: quantity {YEAR | QUARTER | MONTH | DAY | HOUR | MINUTE | WEEK | SECOND | YEAR_MONTH 以上比較官方,我們通過一個例子來直觀的理解一下:
首先創建一個測試test表格 CREATE TABLE IF NOT EXISTS test( id INT PRIMARY KEY AUTO_INCREMENT, message VARCHAR(255) NOT NULL, created_at DATETIME NOT NUL);使用SQL語句創建事件 CREATE EVENT IF NOT EXISTS test_event_01 ON SCHEDULE AT CURRENT_TIMESTAMP DO INSERT INTO test(message,created_at) VALUES(‘測試MySQL事件執行(1)’,NOW()); 此時刷新測試表就會出現插入了一條數據,這只是利用事件執行了一次我們來試著讓它自動執行多次以下語句創建每隔一分鐘執行一次并且在創建時間后1小時內過期的重復事件:CREATE EVENT test_event_03 ON SCHEDULE EVERY 1 MINUTE STARTS CURRENT_TIMESTAMP ENDS CURRENT_TIMESTAMP + INTERVAL 1 HOUR DO INSERT INTO test(message,created_at) VALUES(‘測試MySQL重復事件’,NOW());
當然可以通過這些方法來仔細去體會每個參數的用法,建議使用數據庫圖形化工具來創建事件會簡單很多,因為工具會利用圖形化的方式幫助我們創建各種我們所需參數,希望可以幫助大家。
新聞熱點
疑難解答