Heim >php教程 >php手册 >MySQL 定时器EVENT

MySQL 定时器EVENT

WBOY
WBOYOriginal
2016-06-06 20:01:43931Durchsuche

MySQL从5.1开始支持event功能,类似oracle的job功能。有了这个功能之后我们就可以让MySQL自动的执行数据汇总等功能,不用像以前需要操作的支持了。如linux crontab功能 。 -- 查看是否开启定时器 SHOW VARIABLES LIKE '%sche%'; +-----------------+-------+

MySQL从5.1开始支持event功能,类似oracle的job功能。有了这个功能之后我们就可以让MySQL自动的执行数据汇总等功能,不用像以前需要操作的支持了。如linux  crontab功能 。

-- 查看是否开启定时器
SHOW VARIABLES LIKE '%sche%';  

+-----------------+-------+
| Variable_name   | Value |
+-----------------+-------+
| event_scheduler | ON    |
+-----------------+-------+
1 row in set


-- 开启定时器 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; 

 

从现在开始每隔九天定时执行 
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 
 
 
 
每个季度一号的凌晨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号凌晨四点执行 
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 

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Vorheriger Artikel:php的exec函数怎么回事?Nächster Artikel:动态添加删除表单