程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> MySQL綜合教程 >> mysql event的用法

mysql event的用法

編輯:MySQL綜合教程


mysql event的用法   MySQL從5.1開始支持event功能,類似oracle的job功能。有了這個功能之後我們就可以讓MySQL自動的執行數據匯總等功能,不用像以前需要操作系統提供的定時器的支持了。如linux crontab功能。     www.2cto.com     創建測試表     CREATE TABLE t     (     v VARCHAR(100) NOT NULL     ) ENGINE INNODB DEFAULT CHARSET=utf8;     創建定時器調用的存儲過程     DELIMITER $$     DROP PROCEDURE IF EXISTS e_test $$     CREATE PROCEDURE e_test()     BEGIN     INSERT INTO t VALUES('1');     END $$     DELIMITER ;     要使定時起作用 MySQL的常量GLOBAL event_scheduler必須為on或者是1     www.2cto.com     -- 查看是否開啟定時器     SHOW VARIABLES LIKE '%sche%';     -- 開啟定時器 0:off 1:on     SET GLOBAL event_scheduler = 1;     -- 創建事件     --每隔一秒自動調用e_test()存儲過程     CREATE EVENT IF NOT EXISTS event_test     ON SCHEDULE EVERY 1 SECOND     ON COMPLETION PRESERVE     DO CALL e_test();     -- 開啟事件     ALTER EVENT event_test ON     COMPLETION PRESERVE ENABLE;     -- 關閉事件     ALTER EVENT event_test ON     COMPLETION PRESERVE DISABLE;     SELECT * FROM t;     一些例子:     www.2cto.com     從現在開始每隔九天定時執行     CREATE EVENT EVENT1     ON SCHEDULE EVERY 9 DAY STARTS NOW()     ON COMPLETION PRESERVE ENABLE     DO     BEGIN     CALL TOTAL();     END     每個月的一號凌晨1 點執行     CREATE EVENT EVENT2     ON SCHEDULE EVERY 1 MONTH STARTS DATE_ADD(DATE_ADD(DATE_SUB(CURDATE(),INTERVAL DAY(CURDATE())-1 DAY), INTERVAL 1 MONTH),INTERVAL 1 HOUR)     ON COMPLETION PRESERVE ENABLE     DO     BEGIN     CALL STAT();     END     www.2cto.com     每個季度一號的凌晨2點執行     CREATE EVENT TOTAL_SEASON_EVENT     ON SCHEDULE EVERY 1 QUARTER STARTS DATE_ADD(DATE_ADD(DATE( CONCAT(YEAR(CURDATE()),'-',ELT(QUARTER(CURDATE()),1,4,7,10),'-',1)),INTERVAL 1 QUARTER),INTERVAL 2 HOUR)     ON COMPLETION PRESERVE ENABLE     DO     BEGIN     CALL SEASON_STAT();     END     每年1月1號凌晨四點執行     www.2cto.com     CREATE EVENT TOTAL_YEAR_EVENT     ON SCHEDULE EVERY 1 YEAR STARTS DATE_ADD(DATE(CONCAT(YEAR(CURDATE()) + 1,'-',1,'-',1)),INTERVAL 4 HOUR)     ON COMPLETION PRESERVE ENABLE     DO     BEGIN     CALL YEAR_STAT();     END  

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved