该EVENTS
表提供了有关事件管理器事件的信息,这些信息在
第 20.4 节“使用事件调度程序”中进行了讨论。
该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
(transient) 或RECURRING
(repeating)。EXECUTE_AT
对于一次性事件,这是在 用于创建事件的语句或修改事件的最后一条语句的子句中
DATETIME
指定的值 。此列中显示的值反映了事件 条款中包含的任何值的增加或减少。例如,如果事件是使用 创建的,并且该事件是在 2018-02-09 14:05:30 创建的,则此列中显示的值为 。如果事件的时间是由一个子句而不是一个子句决定的(即,如果事件是重复发生的),则此列的值为AT
CREATE EVENT
ALTER EVENT
INTERVAL
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 模式,事件在该模式下执行。有关允许的值,请参阅第 5.1.10 节,“服务器 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 服务器,但该事件当前未在副本上执行。有关详细信息,请参阅第 17.4.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_CLIENT
character_set_client
创建事件时系统变量 的会话值 。COLLATION_CONNECTION
collation_connection
创建事件时系统变量 的会话值 。DATABASE_COLLATION
与事件关联的数据库的排序规则。
笔记
EVENTS
是一个非标准INFORMATION_SCHEMA
表。表中的时间
EVENTS
使用事件时区、当前会话时区或 UTC 显示,如 第 20.4.4 节“事件元数据”中所述。有关
SLAVESIDE_DISABLED
该ORIGINATOR
列的更多信息,请参阅 第 17.4.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: 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.19 节,“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']