该EVENTS表提供了有关事件管理器事件的信息,这些信息在 第 27.4 节“使用事件调度程序”中讨论。
该EVENTS表包含以下列:
-
EVENT_CATALOG事件所属目录的名称。此值始终为
def。 -
EVENT_SCHEMA事件所属模式(数据库)的名称。
-
EVENT_NAME事件的名称。
-
DEFINER子句中命名的帐户
DEFINER(通常是创建事件的用户), 格式如下。'*user_name*'@'*host_name*' -
TIME_ZONE事件时区,即用于安排事件并在事件执行期间生效的时区。默认值为
SYSTEM。 -
EVENT_BODY事件
DO子句中语句所使用的语言。值始终为SQL。 -
EVENT_DEFINITION组成事件子句的 SQL 语句的文本
DO;换句话说,即由此事件执行的语句。 -
EVENT_TYPE事件重复类型,
ONE TIME(瞬态)或RECURRING(重复)。 -
EXECUTE_AT对于一次性事件,这是 用于创建事件的语句的子句
DATETIME中指定的值 ,或修改事件的最后一个语句的子句中指定的值。此列中显示的值反映了事件 子句中包含的任何值的加法或减法。例如,如果使用 创建事件,并且事件是在 2018-02-09 14:05:30 创建的,则此列中显示的值为 。如果事件的时间由子句而不是子句决定(即,如果事件是重复发生的),则此列的值为 。ATCREATE EVENTALTER EVENTINTERVAL``AT``ON SCHEDULE AT CURRENT_TIMESTAMP + '1:6' DAY_HOUR``'2018-02-10 20:05:30'``EVERY``AT``NULL -
INTERVAL_VALUE对于重复事件,事件执行之间等待的间隔数。对于瞬时事件,该值始终为
NULL。 -
INTERVAL_FIELD重复事件在重复之前等待的间隔时间单位。对于瞬时事件,该值始终为
NULL。 -
SQL_MODE创建或修改事件时有效的 SQL 模式,以及事件执行时所用的 SQL 模式。有关允许的值,请参阅第 7.1.11 节“服务器 SQL 模式”。
-
STARTS重复事件的开始日期和时间。这将显示为一个
DATETIME值,NULL如果未为事件定义开始日期和时间,则为。对于瞬时事件,此列始终为NULL。对于定义包含子句的重复事件STARTS,此列包含相应的DATETIME值。与EXECUTE_AT列一样,此值可解析使用的任何表达式。如果没有STARTS影响事件时间的子句,则此列为NULL -
ENDS对于定义中包含子句的定期事件
ENDS,此列包含相应的DATETIME值。与EXECUTE_AT列一样,此值可解析使用的任何表达式。如果没有ENDS影响事件时间的子句,则此列为NULL。 -
STATUS事件状态。
ENABLED、DISABLED或 之一SLAVESIDE_DISABLED。SLAVESIDE_DISABLED表示事件的创建发生在充当复制源的另一个 MySQL 服务器上,并复制到充当副本的当前 MySQL 服务器,但事件当前未在副本上执行。有关更多信息,请参见第 19.5.1.16 节“调用功能的复制”。信息。 -
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;用于复制。
ALTER EVENT如果在复制源上执行该语句,则此值可能会被更新为发生该语句的服务器的服务器 ID。默认值为 0。 -
CHARACTER_SET_CLIENTcharacter_set_client事件创建时系统变量 的会话值 。 -
COLLATION_CONNECTIONcollation_connection事件创建时系统变量 的会话值 。 -
DATABASE_COLLATION与事件关联的数据库的排序规则。
笔记
EVENTS是一张非标准INFORMATION_SCHEMA表。- 表中的时间
EVENTS使用事件时区、当前会话时区或 UTC 显示,如 第 27.4.4 节“事件元数据”中所述。 - 有关
SLAVESIDE_DISABLED和ORIGINATOR列的更多信息,请参见 第 19.5.1.16 节“调用功能的复制”。
例子
假设用户'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;
(请注意,注释可以跨越多行。)
然后该用户可以运行以下 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_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语句中获得。请参见 第 15.7.7.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']
```+




