23.4.4 事件元数据
要获取有关事件的元数据:
-
查询
mysql
数据库的event
table。 -
查询
INFORMATION_SCHEMA
数据库的EVENTStable。参见第 24.8 节““ INFORMATION_SCHEMA 事件”table”。
事件调度程序时间 table 示
MySQL 中的每个会话都有一个会话时区(STZ)。会话time_zone值是在会话开始时从服务器的全局time_zone值初始化的,但可以在会话期间更改。
执行CREATE EVENT或ALTER EVENT语句时当前的会话时区用于解释事件定义中指定的时间。这就是事件时区(ETZ);也就是说,用于事件调度的时区,在事件执行时有效。
为了在mysql.event
table 中 table 示事件信息,将execute_at
,starts
和ends
时间转换为 UTC 并与事件时区一起存储。这使得事件执行可以按定义进行,而不管服务器时区的任何后续更改或夏令时影响如何。 last_executed
时间也存储在 UTC 中。
如果您从mysql.event
中选择信息,则刚才提到的时间将作为 UTC 值检索。也可以通过从INFORMATION_SCHEMA.EVENTStable 或SHOW EVENTS中进行选择来获得这些时间,但它们将报告为 ETZ 值。这些来源提供的其他时间指示事件的创建时间或最后更改时间。这些显示为 STZ 值。下 table 总结了事件时间。
Value | mysql.event | INFORMATION_SCHEMA.EVENTS | SHOW EVENTS |
---|---|---|---|
Execute at | UTC | ETZ | ETZ |
Starts | UTC | ETZ | ETZ |
Ends | UTC | ETZ | ETZ |
Last executed | UTC | ETZ | n/a |
Created | STZ | STZ | n/a |
Last altered | STZ | STZ | n/a |