Documentation Home
MySQL 8.4 Reference Manual
Related Documentation Download this Manual
PDF (US Ltr) - 39.8Mb
PDF (A4) - 39.9Mb
Man Pages (TGZ) - 257.9Kb
Man Pages (Zip) - 364.9Kb
Info (Gzip) - 4.0Mb
Info (Zip) - 4.0Mb


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

    事件状态。其中包括ENABLEDDISABLEDREPLICA_SIDE_DISABLEDREPLICA_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_DISABLEDOriginator列的更多信息,请参见第19.5.1.16节,“Invoked Feature Replication”

SHOW EVENTS显示的时间是以事件时间区为准,如第27.4.4节,“Event Metadata”中所讨论的那样。

事件信息也可以从INFORMATION_SCHEMAEVENTS表中获取。请参见第28.3.14节,“The INFORMATION_SCHEMA EVENTS Table”

事件动作语句不在SHOW EVENTS的输出中。请使用SHOW CREATE EVENTINFORMATION_SCHEMAEVENTS表。