# 26.3.14 信息_SCHEMA 事件表
这活动
表提供有关事件管理器事件的信息,在第 25.4 节,“使用事件调度程序”.
这活动
表有这些列:
事件目录
事件所属目录的名称。这个值总是
定义
.EVENT_SCHEMA
事件所属的架构(数据库)的名称。
EVENT_NAME
事件的名称。
定义者
中命名的帐户
定义者
子句(通常是创建事件的用户),在'*
用户名*'@'*
主机名*'
格式。时区
事件时区,这是用于安排事件的时区,并且在事件执行时在事件内有效。默认值为
系统
.EVENT_BODY
事件中的陈述所使用的语言
做
条款。价值永远是SQL
.EVENT_DEFINITION
构成事件的 SQL 语句的文本
做
条款;换句话说,这个事件执行的语句。事件类型
事件重复类型,要么
一度
(瞬态)或再次发生的
(重复)。执行_AT
对于一次性事件,这是
约会时间
中指定的值在
的条款创建事件
用于创建事件或最后一个事件的语句改变事件
修改事件的声明。此列中显示的值反映了任何加法或减法间隔
包含在事件中的值在
条款。例如,如果一个事件是使用按计划在 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 模式”.
开始
重复事件的开始日期和时间。这显示为
约会时间
值,并且是空值
如果没有为事件定义开始日期和时间。对于瞬态事件,此列始终空值
.对于定义包括开始
子句,此列包含相应的约会时间
价值。与执行_AT
列,此值解析使用的任何表达式。如果没有开始
影响事件发生时间的条款,此栏为空值
结束
对于定义包括
结束
子句,此列包含相应的约会时间
价值。与执行_AT
列,此值解析使用的任何表达式。如果没有结束
影响事件发生时间的条款,此栏为空值
.状态
事件状态。之一
已启用
,已禁用
, 要么SLAVESIDE_DISABLED
.SLAVESIDE_DISABLED
表示事件的创建发生在另一个充当复制源的 MySQL 服务器上,并复制到当前充当副本的 MySQL 服务器上,但该事件当前未在副本上执行。有关详细信息,请参阅第 17.5.1.16 节,“调用功能的复制”.信息。在完成的时候
两个值之一
保存
要么不保留
.已创建
创建事件的日期和时间。这是一个
时间戳
价值。LAST_ALTERED
上次修改事件的日期和时间。这是一个
时间戳
价值。如果事件自创建以来未修改,则此值与已创建
价值。LAST_EXECUTED
上次执行事件的日期和时间。这是一个
约会时间
价值。如果事件从未执行,则此列是空值
.LAST_EXECUTED
指示事件何时开始。结果,结束
列从不小于LAST_EXECUTED
.EVENT_COMMENT
评论的文本,如果事件有的话。如果不是,则此值为空。
鼻祖
创建事件的 MySQL 服务器的服务器 ID;用于复制。该值可以通过以下方式更新
改变事件
如果在复制源上执行,则指向发生该语句的服务器的服务器 ID。默认值为 0。CHARACTER_SET_CLIENT
会话值
character_set_client
创建事件时的系统变量。COLLATION_CONNECTION
会话值
collation_connection
创建事件时的系统变量。DATABASE_COLLATION
与事件关联的数据库的排序规则。
# 笔记
活动
是一个非标准INFORMATION_SCHEMA
桌子。时代在
活动
表使用事件时区、当前会话时区或 UTC 显示,如中所述第 25.4.4 节,“事件元数据”.有关更多信息
SLAVESIDE_DISABLED
和鼻祖
专栏,见第 17.5.1.16 节,“调用功能的复制”.
# 例子
假设用户'乔恩'@'吉多拉'
创建一个名为的事件电子日报
, 然后在几分钟后使用改变事件
声明,如下所示:
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;
(请注意,注释可以跨越多行。)
然后该用户可以运行以下命令选择
语句,并获得显示的输出:
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
活动信息也可从展会活动
陈述。看第 13.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']