24.8 INFORMATION_SCHEMA 活动 table

EVENTStable 提供有关事件 Management 器事件的信息,将在第 23.4 节“使用事件计划程序”中讨论。

EVENTStable 具有以下列:

  • EVENT_CATALOG

事件所属的目录的名称。此值始终为def

  • EVENT_SCHEMA

事件所属的架构(数据库)的名称。

  • EVENT_NAME

事件的名称。

  • DEFINER

DEFINER子句中命名的帐户(通常是创建事件的用户),格式为'user_name'@'host_name'

  • TIME_ZONE

事件时区,它是用于安排事件的时区,并且在事件执行时有效。默认值为SYSTEM

  • EVENT_BODY

事件的DO子句中的语句所使用的语言。该值始终为SQL

  • EVENT_DEFINITION

组成事件的DO子句的 SQL 语句的文本;换句话说,此事件执行的语句。

  • EVENT_TYPE

事件重复类型为ONE TIME(瞬态)或RECURRING(重复)。

  • EXECUTE_AT

对于一次性事件,这是在用于创建事件的CREATE EVENT语句的AT子句中或在修改事件的最后一个ALTER EVENT语句的AT子句中指定的DATETIME值。此列中显示的值反映事件的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

对于重复发生的事件,是两次事件执行之间要 await 的时间间隔数。对于瞬态事件,该值始终为NULL

  • INTERVAL_FIELD

重复事件在重复之前 await 的时间间隔所用的时间单位。对于瞬态事件,该值始终为NULL

  • SQL_MODE

创建或更改事件以及执行事件时有效的 SQL 模式。有关允许的值,请参见第 5.1.10 节“服务器 SQL 模式”

  • STARTS

重复活动的开始日期和时间。如果未为事件定义开始日期和时间,则显示为DATETIME值,显示为NULL。对于瞬态事件,此列始终为NULL。对于其定义包含STARTS子句的重复发生的事件,此列包含相应的DATETIME值。与EXECUTE_AT列一样,此值可解析所有使用的 table 达式。如果没有STARTS子句影响事件的时间,则此列为NULL

  • ENDS

对于其定义包含ENDS子句的重复事件,此列包含相应的DATETIME值。与EXECUTE_AT列一样,此值可解析所有使用的 table 达式。如果没有ENDS子句影响事件的时间,则此列为NULL

  • STATUS

事件状态。 ENABLEDDISABLEDSLAVESIDE_DISABLED之一。 SLAVESIDE_DISABLEDtable 示事件的创建发生在另一个充当复制源的 MySQL 服务器上,并复制到充当副本的当前 MySQL 服务器上,但是该事件当前不在副本上执行。有关更多信息,请参见第 16.4.1.16 节,“调用功能的复制”。信息。

  • ON_COMPLETION

两个值PRESERVENOT PRESERVE之一。

  • CREATED

创建事件的日期和时间。这是TIMESTAMP的值。

  • LAST_ALTERED

上次修改事件的日期和时间。这是TIMESTAMP的值。如果事件自创建以来尚未修改,则该值与CREATED值相同。

  • LAST_EXECUTED

事件最后执行的日期和时间。这是DATETIME的值。如果事件从未执行过,则此列为NULL

LAST_EXECUTED指示事件何时开始。结果,ENDS列永远不会小于LAST_EXECUTED

  • EVENT_COMMENT

如果事件有一个,则 Comments 文本。如果不是,则此值为空。

  • ORIGINATOR

创建事件的 MySQL 服务器的服务器 ID;用于复制。如果在复制源上执行此值,则可以通过ALTER EVENT将其更新为该语句所在的服务器的服务器 ID。默认值为 0.

  • CHARACTER_SET_CLIENT

创建事件时character_set_client系统变量的会话值。

  • COLLATION_CONNECTION

创建事件时collation_connection系统变量的会话值。

  • DATABASE_COLLATION

与事件关联的数据库的整理。

Notes

Example

假设用户'jon'@'ghidora'创建了一个名为e_daily的事件,然后在几分钟后使用ALTER EVENT语句对其进行了修改,如下所示:

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;

(请注意,Comments 可以跨越多行.)

然后,该用户可以运行以下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

事件信息也可以从SHOW EVENTS语句中获得。参见第 13.7.5.18 节“ SHOW EVENTS 语句”。以下语句是等效的:

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']