EVENTS表
该EVENTS
表提供了有关事件管理器事件的信息,将在“使用事件计划程序”中进行讨论。
该EVENTS
表包含以下列:
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
对于一次性事件,这是在用于创建事件的语句
DATETIME
的AT
子句中CREATE EVENT
或在ALTER EVENT
修改事件的最后一条语句的子句中指定的值。此列中显示的值反映INTERVAL
事件AT
子句中包含的任何值的加法或减法。例如,如果使用创建了一个事件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
事件状态。其中一个
ENABLED
,DISABLED
或SLAVESIDE_DISABLED
。SLAVESIDE_DISABLED
表示事件的创建发生在另一台充当复制主服务器的MySQL服务器上,并复制到当前充当从服务器的MySQL服务器上,但是该事件当前不在从服务器上执行。有关更多信息,请参见“复制功能”。信息。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_CLIENT
character_set_client
创建事件时系统变量的会话值。COLLATION_CONNECTION
collation_connection
创建事件时系统变量的会话值。DATABASE_COLLATION
与事件关联的数据库的整理。
注意
- 该
EVENTS
表是非标准INFORMATION_SCHEMA
表。 - 在次
EVENTS
表中使用事件时区,当前会话时区或UTC显示,如在“事件的元数据”。 - 有关
SLAVESIDE_DISABLED
和该ORIGINATOR
列的更多信息,请参见“复制功能”。
例
假设用户'jon'@'ghidora'
创建了一个名为的事件e_daily
,然后在几分钟后使用一条ALTER EVENT
语句对其进行了修改,如下所示:
DELIMITER |CREATE EVENT e_dailyON SCHEDULE EVERY 1 DAYCOMMENT '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_dailyENABLE ;
(请注意,注释可以跨越多行。)
然后,该用户可以运行以下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
语句中也提供事件信息。请参见“ 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_COLLATIONFROM INFORMATION_SCHEMA.EVENTS WHERE table_schema = 'db_name' [ANDcolumn_name LIKE 'wild']SHOW EVENTS [FROM db_name] [LIKE 'wild']