• 8. EVENTS


    8. EVENTS

    EVENTS表提供有关事件管理器事件的信息,这将在“使用事件调度程序”中讨论。

    EVENTS表有以下列:
    - EVENT_CATALOG:事件所属目录的名称。这个值总是def。
    - EVENT_SCHEMA:事件所属的schema(数据库)的名称。
    - EVENT_NAME:事件的名称。
    - DEFINER:以“user_name”@“host_name”格式创建事件的用户的帐户。
    - TIME_ZONE:事件时区,用于调度事件的时区,在事件执行时生效。 默认值为SYSTEM。
    - EVENT_BODY:用于事件的DO子句中的语句的语言。 值始终是SQL。
    - EVENT_DEFINITION:构成事件的DO子句的SQL语句的文本; 换句话说,这个事件执行的语句。
    - EVENT_TYPE:事件重复类型,一次(瞬态)或重复(重复)。、
    - EXECUTE_AT:对于一次性事件,这是在用于创建事件的CREATE EVENT语句的AT子句中指定的DATETIME值,或者是修改事件的最后一个ALTER EVENT语句。 此列中显示的值反映了事件的AT子句中包含的任何INTERVAL值的加或减。 例如,如果使用ON SCHEDULE AT CURRENT_TIMESTAMP +'1:6'DAY_HOUR创建事件,并且事件创建于2018-02-09 14:05:30,则此列中显示的值将为'2018-02 -10 20:05:30'。 如果事件的时间由EVERY子句而不是AT子句确定(即,如果事件重复出现),则此列的值为NULL。
    - INTERVAL_VALUE:对于重复事件,在事件执行之间等待的间隔数。 对于瞬态事件,该值始终为NULL。
    - INTERVAL_FIELD:用于重复事件在重复之前等待的间隔的时间单位。 对于瞬态事件,该值始终为NULL。
    - SQL_MODE:创建或更改事件时生效的SQL模式,以及执行事件的情况。 有关允许的值,请参见“服务器SQL模式”。
    - STARTS:重复事件的开始日期和时间。 它显示为DATETIME值,如果没有为事件定义开始日期和时间,则为NULL。 对于瞬态事件,此列始终为NULL。 对于定义包含STARTS子句的定期事件,此列包含相应的DATETIME值。 与EXECUTE_AT列一样,此值可解析所使用的任何表达式。 如果没有影响事件时间的STARTS子句,则此列为NULL
    - ENDS:对于定义包含ENDS子句的重复事件,此列包含相应的DATETIME值。 与EXECUTE_AT列一样,此值可解析所使用的任何表达式。 如果没有影响事件时间的ENDS子句,则此列为NULL。
    - STATUS:事件状态。 ENABLEDDISABLEDSLAVESIDE_DISABLED.SLAVESIDE_DISABLED表示事件的创建发生在充当复制主服务器的另一个MySQL服务器上,并复制到充当从服务器的当前MySQL服务器,但该事件当前未在从服务器上执行。 https://dev.mysql.com/doc/refman/5.7/en/replication-features-invoked.html
    - ON_COMPLETION:其中一个值为PRESERVE或NOT PRESERVE。
    - CREATED:事件创建的日期和时间。 这是TIMESTAMP值。
    - LAST_ALTERED:最后一次修改事件的日期和时间。 这是TIMESTAMP值。 如果事件自创建以来未被修改,则此值与CREATED值相同。
    - LAST_EXECUTED:事件上次执行的日期和时间。 这是DATETIME值。 如果事件从未执行过,则此列为NULL。LAST_EXECUTED指示事件何时开始。 因此,ENDS列永远不会小于LAST_EXECUTED。
    - EVENT_COMMENT:如果有一个事件,文本显示的是注释。反之,则值为空
    - ORIGINATOR:创建事件的MySQL服务器的服务器ID; 用于复制。 默认值为0。
    - CHARACTER_SET_CLIENT:创建事件时character_set_client系统变量的会话值。
    - COLLATION_CONNECTION:创建事件时collation_connection系统变量的会话值。
    - DATABASE_COLLATION:与事件关联的数据库的排序规则。

    示例:

    DELIMITER |
    
    CREATE EVENT e_daily
        ON SCHEDULE
          EVERY 1 DAY
        COMMENT 'Saves total number of sessions then clears the table each day'
        DO
          BEGIN
            INSERT INTO site_activity.totals (time, total)
              SELECT CURRENT_TIMESTAMP, COUNT(*)
                FROM site_activity.sessions;
            DELETE FROM site_activity.sessions;
          END |
    
    DELIMITER ;
    
    ALTER EVENT e_daily
        ENABLE;

    然后,该用户可以运行以下 SELECT语句,并获得显示的输出:

    mysql> SELECT * FROM INFORMATION_SCHEMA.EVENTS
           WHERE EVENT_NAME = 'e_daily'
           AND EVENT_SCHEMA = 'myschema'G
    *************************** 1. row ***************************
           EVENT_CATALOG: def
            EVENT_SCHEMA: myschema
              EVENT_NAME: e_daily
                 DEFINER: jon@ghidora
               TIME_ZONE: SYSTEM
              EVENT_BODY: SQL
        EVENT_DEFINITION: BEGIN
            INSERT INTO site_activity.totals (time, total)
              SELECT CURRENT_TIMESTAMP, COUNT(*)
                FROM site_activity.sessions;
            DELETE FROM site_activity.sessions;
          END
              EVENT_TYPE: RECURRING
              EXECUTE_AT: NULL
          INTERVAL_VALUE: 1
          INTERVAL_FIELD: DAY
                SQL_MODE: ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,
                          NO_ZERO_IN_DATE,NO_ZERO_DATE,
                          ERROR_FOR_DIVISION_BY_ZERO,
                          NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
                  STARTS: 2018-08-08 11:06:34
                    ENDS: NULL
                  STATUS: ENABLED
           ON_COMPLETION: NOT PRESERVE
                 CREATED: 2018-08-08 11:06:34
            LAST_ALTERED: 2018-08-08 11:06:34
           LAST_EXECUTED: 2018-08-08 16:06:34
           EVENT_COMMENT: Saves total number of sessions then clears the
                          table each day
              ORIGINATOR: 1
    CHARACTER_SET_CLIENT: utf8
    COLLATION_CONNECTION: utf8_general_ci
      DATABASE_COLLATION: latin1_swedish_ci
    SELECT
        EVENT_SCHEMA, EVENT_NAME, DEFINER, TIME_ZONE, EVENT_TYPE, EXECUTE_AT,
        INTERVAL_VALUE, INTERVAL_FIELD, STARTS, ENDS, STATUS, ORIGINATOR,
        CHARACTER_SET_CLIENT, COLLATION_CONNECTION, DATABASE_COLLATION
      FROM INFORMATION_SCHEMA.EVENTS
      WHERE table_schema = 'db_name'
      [AND column_name LIKE 'wild']
    
    SHOW EVENTS
      [FROM db_name]
      [LIKE 'wild']
  • 相关阅读:
    2013级机试D题解析
    关于C# 委托(delegate)与事件(event)的用法及事例
    ASP.NET 简单的柱形图实现(附带示例)
    jQuery 关于IE9上传文件无法进入后台问题的原因及解决办法(ajaxfileupload.js第四弹)
    jQuery 自制上传头像插件-附带Demo实例(ajaxfileupload.js第三弹)
    jQuery 关于ajaxfileupload.js插件的逐步解析(ajaxfileupload.js第二弹)
    ASP.NET 使用ajaxfileupload.js插件出现上传较大文件失败的解决方法(ajaxfileupload.js第一弹)
    jQuery 表格中实现“删除线”的增进方法
    Skype坑爹报错:“旧版本无法删除,请联络您的技术支持小组 ”的解决办法
    ASP.NET Button控件的UseSubmitBehavior属性引发的血案
  • 原文地址:https://www.cnblogs.com/wanbin/p/9514642.html
Copyright © 2020-2023  润新知