15.7.7.19 显示事件语句
SHOW EVENTS
[{FROM | IN} schema_name]
[LIKE 'pattern' | WHERE expr]
该语句显示 Event Manager 事件的信息,这些事件在第27.4节,“使用事件调度器”中讨论。它需要EVENT
权限,以便从要显示事件的数据库中获取事件。
在最简单的形式中,SHOW EVENTS
列出当前架构中的所有事件:
mysql> SELECT CURRENT_USER(), SCHEMA();
+----------------+----------+
| CURRENT_USER() | SCHEMA() |
+----------------+----------+
| jon@ghidora | myschema |
+----------------+----------+
1 row in set (0.00 sec)
mysql> SHOW EVENTS\G
*************************** 1. row ***************************
Db: myschema
Name: e_daily
Definer: jon@ghidora
Time zone: SYSTEM
Type: RECURRING
Execute at: NULL
Interval value: 1
Interval field: DAY
Starts: 2018-08-08 11:06:34
Ends: NULL
Status: ENABLED
Originator: 1
character_set_client: utf8mb4
collation_connection: utf8mb4_0900_ai_ci
Database Collation: utf8mb4_0900_ai_ci
要查看特定架构中的事件,请使用 FROM
子句。例如,要查看 test
架构中的事件,请使用以下语句:
SHOW EVENTS FROM test;
如果存在 LIKE
子句,它将指示要匹配的事件名称。 WHERE
子句可以用于选择行,以便使用更通用的条件,如第28.8节,“SHOW 语句扩展”中讨论。
SHOW EVENTS
输出具有以下列:
-
Db
事件所属架构(数据库)的名称。
-
Name
事件的名称。
-
Definer
创建事件的用户帐户,以 '
user_name
'@'host_name
' 格式显示。 -
Time zone
事件的时区,这是用于调度事件的时区,并且在事件执行时有效。默认值为
SYSTEM
。 -
Type
事件重复类型, either
ONE TIME
(瞬态)或RECURRING
(重复)。 -
Execute At
对于一次性事件,这是
DATETIME
值,指定在CREATE EVENT
语句中创建事件或最后修改事件的ALTER EVENT
语句中指定的值。该值反映了事件的AT
子句中可能包含的INTERVAL
值的添加或减少。例如,如果事件使用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
-
Starts
重复事件的开始日期和时间。这将以
DATETIME
值显示,如果没有定义事件的开始日期和时间,这个列将是NULL
。对于包含STARTS
子句的重复事件,这个列将包含相应的DATETIME
值。与Execute At
列一样,这个值将解析任何使用的表达式。如果没有STARTS
子句影响事件的时间,这个列将是NULL
-
Ends
对于包含
ENDS
子句的重复事件,这个列将包含相应的DATETIME
值。与Execute At
列一样,这个值将解析任何使用的表达式。如果没有ENDS
子句影响事件的时间,这个列将是NULL
-
Status
事件状态。其中包括
ENABLED
、DISABLED
和REPLICA_SIDE_DISABLED
。REPLICA_SIDE_DISABLED
表示在另一个MySQL服务器上创建事件,并将其复制到当前MySQL服务器上,但事件不在当前服务器上执行。更多信息,请见第19.5.1.16节,“Replication of Invoked Features”。REPLICA_SIDE_DISABLED
替代了SLAVESIDE_DISABLED
,后者现在已弃用,并且将在未来的MySQL版本中删除。 -
Originator
创建事件的MySQL服务器的服务器ID;用于复制。这个值可能在
ALTER EVENT
中被更新,以服务器ID更新到执行该语句的源服务器的服务器ID。默认值为0。 -
character_set_client
事件创建时的
character_set_client
系统变量的会话值。 -
collation_connection
事件创建时的
collation_connection
系统变量的会话值。 -
数据库排序
与事件相关的数据库的排序。
关于REPLICA_SIDE_DISABLED
和Originator
列的更多信息,请参见第19.5.1.16节,“Invoked Feature Replication”。
SHOW EVENTS
显示的时间是以事件时间区为准,如第27.4.4节,“Event Metadata”中所讨论的那样。
事件信息也可以从INFORMATION_SCHEMA
的EVENTS
表中获取。请参见第28.3.14节,“The INFORMATION_SCHEMA EVENTS Table”。
事件动作语句不在SHOW EVENTS
的输出中。请使用SHOW CREATE EVENT
或INFORMATION_SCHEMA
的EVENTS
表。