zoukankan      html  css  js  c++  java
  • MySQL事件 Events

    MySQL事件 Events

     
    一、关键字: EVENT
     
    二、语法:
    CREATE EVENT?
    [IF NOT EXISTS ] //如果不存在则创建
    event_name?
    ON SCHEDULE schedle
    [ON COMPLETION [NOT] PRESERVE]
    [ENABLE|DESABLE]
    [COMMENT 'comment']
    DO sql_statement
     
    说明:
    1.event_name 事件的名称
     
    2.ON SCHEDULE
    有两种设定计划任务的方式:
     
    #单次计划任务:
    AT 时戳
     
    #重复的计划任务
    EVERY 时间(单位)的数量 时间单位 [STARTS 时戳][ENDS 时戳]
     
    在两种计划任务中,时戳可以是任意的TIMESTAMP 和DATETIME 数据类型,要求提供的是将来的时间(大于CURRENT_TIMESTAMP),而且小于Unix时间的最后时间(等于或小于'2037-12-31 23:59:59')
     
    时间单位是关键词:YEAR,MONTH,DAY,HOUR,MINUTE 或者SECOND
     
    3.[ON COMPLETION [NOT] PRESERVE]
    COMPLETION 当单次计划任务执行完毕后或当重复性的计划任务执行到了ENDS阶段。而声明PRESERVE的作用是使事件在执行完毕后不会被Drop掉
     
    4.[ENABLE|DESABLE]
    ENABLE 开启事件
    DESABLE 关闭事件
     
    5.COMMENT
    注释
     
    6.DO sql_statement
    执行的sql语句
     
    三、通过设定全局变量event_scheduler 的值即可动态的控制事件调度器是否启用。?
     
    查看是否event_scheduler开启
    mysql> SHOW VARIABLES LIKE '%event%';
     
    设置开启
    mysql> SET GLOBAL event_scheduler=ON;
     
    四、例子:
     
    每分钟插入一条日志:
    DELIMITER //
    CREATE EVENT `user_log_event` ON SCHEDULE EVERY 1 MINUTE STARTS '2010-12-27 00:00:00'?
    ON COMPLETION NOT PRESERVE ENABLE DO?
    BEGIN?
    INSERT INTO log SET addtime=NOW();
    END
    //
     
    调用存储过程:
    DELIMITER //
    CREATE EVENT `user_log_event` ON SCHEDULE EVERY 1 DAY STARTS '2010-00-00 00:00:00'?
    ON COMPLETION NOT PRESERVE ENABLE DO?
    BEGIN
    CALL user_log_prov();
    END

    //

  • 相关阅读:
    windows下使用vscode编写运行以及调试C/C++
    nginx基础模块
    Windows下配置nginx+php(wnmp)
    快速创建 Vue 项目
    你真的会玩SQL吗?冷落的Top和Apply
    你真的会玩SQL吗?透视转换的艺术
    你真的会玩SQL吗?你所不知道的 数据聚合
    你真的会玩SQL吗?简单的数据修改
    你真的会玩SQL吗?表表达式,排名函数
    你真的会玩SQL吗?Case也疯狂
  • 原文地址:https://www.cnblogs.com/hanlong/p/5715599.html
Copyright © 2011-2022 走看看