MySQL 事件调度器

 MySQL中的事件调度器是 MySQL 5.1 以后才新增的功能.可以将数据库按照规定的时间周期对数据库做,增加,删除,修改等操作.相当于linux中的无人调度器 crontab(相关crontab的操作请看参看我些的linux的计划任务).避免了一些数据相关的定时任务在业务操作层,减少操作员误操作的风险, 大大缩短了工作量提高工作效率.

     首先介绍下语法:

     CREATE EVENT [IF NOT EXISTS] event_name

    ON SCHEDULE schedule

    [ON COMPLETION [NOT] PRESERVE]

    [ENABLE | DISABLE]

    [COMMENT 'comment']

    DO sql_statement

    schedule:

    AT TIMESTAMP [+ INTERVAL INTERVAL]

    | EVERY INTERVAL [STARTS TIMESTAMP] [ENDS TIMESTAMP]

 

    INTERVAL:

       quantity {YEAR | QUARTER | MONTH | DAY | HOUR | MINUTE |

      WEEK | SECOND | YEAR_MONTH | DAY_HOUR | DAY_MINUTE |

    DAY_SECOND | HOUR_MINUTE | HOUR_SECOND | MINUTE_SECOND}

    说明:中括号中为可选择项,可指定任务执行的频率.通过DO字句指定要执行的具体操作.

     创建一个计划任务每个三秒钟想一个表中插入一条测试数据.例子如下:

      (1) 创建测试用测试表既:(注意:方才为了模拟数据库密码忘记情况做了以下数据库停止操作,启动的时候大家注意一定要把进程中的 mysqldkill掉否则无法启动.)

       接下来创建测试库,本例直接用以前用于测试的表:t_time,创建语句如下:

  

      CREATE TABLE `t_time` (
    `d` date DEFAULT NULL,
    `t` time DEFAULT NULL,
    `dt` datetime DEFAULT NULL,
    `updatetime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '最后更新时
  间'
 

) ENGINE=InnoDB DEFAULT CHARSET=utf8;

 

 

         (2) 创建事件调度器 event_insert_t_time

       

       (3)  查看创建事件调度器是否成功:出现下图说明创建成功.

     

      (4) 过了几秒查看表中没有数据.

     

       (5) 查看调度器状态看是否为开启状态,(默认为关闭的)

     

      (6) 打开调度器

    

     (7) 查看表中数据

    

     (8) 设计调度器禁用

    

     (9) 如果不用还可以删除调度器命令如下:

      drop event  event_insert_t_time;

 本文我原版,欢迎转载转载请说明出处.

 

posted @ 2016-05-24 08:07  东北大亨  阅读(1596)  评论(0编辑  收藏  举报