### 26.3.14 信息\_SCHEMA 事件表

[](<>)

这[`活动`](information-schema-events-table.html)表提供有关事件管理器事件的信息，在[第 25.4 节，“使用事件调度程序”](event-scheduler.html).

这[`活动`](information-schema-events-table.html)表有这些列：

-   `事件目录`

    事件所属目录的名称。这个值总是`定义`.

-   `EVENT_SCHEMA`

    事件所属的架构（数据库）的名称。

-   `EVENT_NAME`

    事件的名称。

-   `定义者`

    中命名的帐户`定义者`子句（通常是创建事件的用户），在`'*`用户名`*'@'*`主机名`*'`格式。

-   `时区`

    事件时区，这是用于安排事件的时区，并且在事件执行时在事件内有效。默认值为`系统`.

-   `EVENT_BODY`

    事件中的陈述所使用的语言[`做`](do.html)条款。价值永远是`SQL`.

-   `EVENT_DEFINITION`

    构成事件的 SQL 语句的文本[`做`](do.html)条款;换句话说，这个事件执行的语句。

-   `事件类型`

    事件重复类型，要么`一度`（瞬态）或`再次发生的`（重复）。

-   `执行_AT`

    对于一次性事件，这是[`约会时间`](datetime.html)中指定的值`在`的条款[`创建事件`](create-event.html)用于创建事件或最后一个事件的语句[`改变事件`](alter-event.html)修改事件的声明。此列中显示的值反映了任何加法或减法`间隔`包含在事件中的值`在`条款。例如，如果一个事件是使用`按计划在 CURRENT_TIMESTAMP + '1:6' DAY_HOUR`，并且该事件是在 2018-02-09 14:05:30 创建的，此列中显示的值为`'2018-02-10 20:05:30'`.如果事件的时间是由一个`每一个`子句而不是`在`子句（即，如果事件重复发生），则该列的值为`空值`.

-   `INTERVAL_VALUE`

    对于重复事件，事件执行之间等待的间隔数。对于瞬态事件，该值始终为`空值`.

-   `INTERVAL_FIELD`

    用于重复事件在重复之前等待的间隔的时间单位。对于瞬态事件，该值始终为`空值`.

-   `SQL_MODE`

    创建或更改事件时有效的 SQL 模式，以及事件在该模式下执行。有关允许的值，请参阅[第 5.1.11 节，“服务器 SQL 模式”](sql-mode.html).

-   `开始`

    重复事件的开始日期和时间。这显示为[`约会时间`](datetime.html)值，并且是`空值`如果没有为事件定义开始日期和时间。对于瞬态事件，此列始终`空值`.对于定义包括`开始`子句，此列包含相应的[`约会时间`](datetime.html)价值。与`执行_AT`列，此值解析使用的任何表达式。如果没有`开始`影响事件发生时间的条款，此栏为`空值`

-   `结束`

    对于定义包括`结束`子句，此列包含相应的[`约会时间`](datetime.html)价值。与`执行_AT`列，此值解析使用的任何表达式。如果没有`结束`影响事件发生时间的条款，此栏为`空值`.

-   `状态`

    事件状态。之一`已启用`,`已禁用`， 要么`SLAVESIDE_DISABLED`.`SLAVESIDE_DISABLED`表示事件的创建发生在另一个充当复制源的 MySQL 服务器上，并复制到当前充当副本的 MySQL 服务器上，但该事件当前未在副本上执行。有关详细信息，请参阅[第 17.5.1.16 节，“调用功能的复制”](replication-features-invoked.html).信息。

-   `在完成的时候`

    两个值之一`保存`要么`不保留`.

-   `已创建`

    创建事件的日期和时间。这是一个[`时间戳`](datetime.html)价值。

-   `LAST_ALTERED`

    上次修改事件的日期和时间。这是一个[`时间戳`](datetime.html)价值。如果事件自创建以来未修改，则此值与`已创建`价值。

-   `LAST_EXECUTED`

    上次执行事件的日期和时间。这是一个[`约会时间`](datetime.html)价值。如果事件从未执行，则此列是`空值`.

    `LAST_EXECUTED`指示事件何时开始。结果，`结束`列从不小于`LAST_EXECUTED`.

-   `EVENT_COMMENT`

    评论的文本，如果事件有的话。如果不是，则此值为空。

-   `鼻祖`

    创建事件的 MySQL 服务器的服务器 ID；用于复制。该值可以通过以下方式更新[`改变事件`](alter-event.html)如果在复制源上执行，则指向发生该语句的服务器的服务器 ID。默认值为 0。

-   `CHARACTER_SET_CLIENT`

    会话值[`character_set_client`](server-system-variables.html#sysvar_character_set_client)创建事件时的系统变量。

-   `COLLATION_CONNECTION`

    会话值[`collat​​ion_connection`](server-system-variables.html#sysvar_collation_connection)创建事件时的系统变量。

-   `DATABASE_COLLATION`

    与事件关联的数据库的排序规则。

#### 笔记

-   [`活动`](information-schema-events-table.html)是一个非标准`INFORMATION_SCHEMA`桌子。

-   时代在[`活动`](information-schema-events-table.html)表使用事件时区、当前会话时区或 UTC 显示，如中所述[第 25.4.4 节，“事件元数据”](events-metadata.html).

-   有关更多信息`SLAVESIDE_DISABLED`和`鼻祖`专栏，见[第 17.5.1.16 节，“调用功能的复制”](replication-features-invoked.html).

#### 例子

假设用户`'乔恩'@'吉多拉'`创建一个名为的事件`电子日报`, 然后在几分钟后使用[`改变事件`](alter-event.html)声明，如下所示：

```
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.html)语句，并获得显示的输出：

```
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_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: utf8mb4
COLLATION_CONNECTION: utf8mb4_0900_ai_ci
  DATABASE_COLLATION: utf8mb4_0900_ai_ci
```

活动信息也可从[`展会活动`](show-events.html)陈述。看[第 13.7.7.18 节，“SHOW EVENTS 语句”](show-events.html).以下语句是等效的：

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