zoukankan      html  css  js  c++  java
  • mysql的event(事件)用法详解

     SELECT * FROM mysql.event;
    SET GLOBAL event_scheduler = 1; -- 开启定时器 0:off 1:on 
    SHOW VARIABLES LIKE 'event_scheduler';-- 查看是否开启定时器

     

    如果显示OFF,则输入以下语句开启:

    set global event_scheduler = on;

    提醒:虽然这里用set global event_scheduler = on语句开启了事件,但是每次重启电脑。或重启mysql服务后,会发现,事件自动关闭(event_scheduler=OFF),所以想让事件一直保持开启,最好修改配置文件,让mysql服务启动的时候开启时间,只需要在my.ini配置文件的[mysqld]部分加上event_scheduler=ON 即可,如下:

     1 MySQL从5.1开始支持event功能,类似oracle的job功能。有了这个功能之后我们就可以让MySQL自动的执行数据汇总等功能,不用像以前需要操作的支持了。如linux crontab功能 。 -- 查看是否开启定时器 SHOW VARIABLES LIKE '%sche%'; +-----------------+-------+
     2 
     3 MySQL从5.1开始支持event功能,类似oracle的job功能。有了这个功能之后我们就可以让MySQL自动的执行数据汇总等功能,不用像以前需要操作的支持了。如linux crontab功能 。
     4 
     5 -- 查看是否开启定时器
     6 SHOW VARIABLES LIKE '%sche%'; 
     7 
     8 +-----------------+-------+
     9 | Variable_name | Value |
    10 +-----------------+-------+
    11 | event_scheduler | ON |
    12 +-----------------+-------+
    13 1 row in set
    14 
    15 
    16 
    17 
    18 -- 开启定时器 0:off 1:on
    19 SET GLOBAL event_scheduler = 1; 
    20 
    21 -- 创建事件
    22 --每隔一秒自动调用e_test()存储过程
    23 CREATE EVENT IF NOT EXISTS event_test
    24 ON SCHEDULE EVERY 1 SECOND
    25 ON COMPLETION PRESERVE 
    26 DO CALL e_test();
    27 
    28 -- 开启事件
    29 ALTER EVENT event_test ON 
    30 COMPLETION PRESERVE ENABLE; 
    31 
    32 -- 关闭事件
    33 ALTER EVENT event_test ON 
    34 COMPLETION PRESERVE DISABLE;
    35 
    36 从现在开始每隔九天定时执行 
    37 CREATE EVENT EVENT1 
    38 
    39 ON SCHEDULE EVERY 9 DAY STARTS NOW() 
    40 ON COMPLETION PRESERVE ENABLE 
    41 DO 
    42 BEGIN 
    43 CALL TOTAL(); 
    44 END 
    45 
    46 
    47 
    48 
    49 
    50 每个月的一号凌晨1 点执行 
    51 CREATE EVENT EVENT2 
    52 
    53 ON SCHEDULE EVERY 1 MONTH STARTS DATE_ADD(DATE_ADD(DATE_SUB(CURDATE(),INTERVAL DAY(CURDATE())-1 DAY), INTERVAL 1 MONTH),INTERVAL 1 HOUR) 
    54 ON COMPLETION PRESERVE ENABLE 
    55 DO 
    56 BEGIN 
    57 CALL STAT(); 
    58 END 
    59 
    60 
    61 
    62 每个季度一号的凌晨2点执行 
    63 
    64 CREATE EVENT TOTAL_SEASON_EVENT 
    65 
    66 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) 
    67 ON COMPLETION PRESERVE ENABLE 
    68 DO 
    69 BEGIN 
    70 CALL SEASON_STAT(); 
    71 END 
    72 
    73 
    74 
    75 
    76 每年1月1号凌晨四点执行 
    77 CREATE EVENT TOTAL_YEAR_EVENT 
    78 
    79 ON SCHEDULE EVERY 1 YEAR STARTS DATE_ADD(DATE(CONCAT(YEAR(CURDATE()) + 1,'-',1,'-',1)),INTERVAL 4 HOUR) 
    80 ON COMPLETION PRESERVE ENABLE 
    81 DO 
    82 BEGIN 
    83 CALL YEAR_STAT(); 
    84 END
  • 相关阅读:
    HDU 4165 pills
    POJ 2125 Destroy The Graph
    POJ 2075 Tangled in Cables
    NYOJ Number SequenceProblem F
    PHP Eval研究笔记
    PHP 学习备忘(更新中)
    iOS学习笔记1 版本控制
    PHP全局缓存上栽的坑及其他【反面教材系列】
    iOS学习笔记2 Code Format
    iOS学习笔记4 垃圾回收初涉
  • 原文地址:https://www.cnblogs.com/gaogaoxingxing/p/9909970.html
Copyright © 2011-2022 走看看