MySQL - SHOW EVENTS 语句
MySQL SHOW EVENTS 语句
MySQL 事件只不过是按照特定计划执行的任务。一个事件可以包含一个或多个 MySQL 语句,这些语句存储在数据库中,并按照指定的计划执行。
SHOW EVENTS 语句列出指定架构中的事件(信息)。
语法
以下是 MySQL SHOW EVENTS 语句的语法 -
SHOW EVENTS [{FROM | IN} schema_name] [LIKE 'pattern' | WHERE expr]
示例
假设我们创建了一个名为 data 的表,并创建了一个向其中插入记录的事件。
CREATE TABLE Data (Name VARCHAR(255), age INT); CREATE EVENT sample_event ON SCHEDULE EVERY 1 MONTH DO TRUNCATE TABLE data;
以下查询列出了当前数据库中的事件 -
SHOW EVENTS\G;
输出
查询执行后,将生成如下所示的输出 -
************* 1. row ************* Db: test Name: event_hourly Definer: root@localhost Time zone: SYSTEM Type: RECURRING Execute at: NULL Interval value: 1 Interval field: MONTH Starts: 2023-12-05 14:51:03 Ends: NULL Status: ENABLED Originator: 1 character_set_client: cp850 collation_connection: cp850_general_ci Database Collation: utf8mb4_0900_ai_ci ************* 2. row ************* Db: test Name: new_event_name Definer: root@localhost Time zone: SYSTEM Type: RECURRING Execute at: NULL Interval value: 1 Interval field: MONTH Starts: 2023-12-04 14:08:03 Ends: NULL Status: ENABLED Originator: 1 character_set_client: cp850 collation_connection: cp850_general_ci Database Collation: utf8mb4_0900_ai_ci ************* 3. row ************* Db: test Name: sample_event Definer: root@localhost Time zone: SYSTEM Type: RECURRING Execute at: NULL Interval value: 1 Interval field: MONTH Starts: 2023-12-13 12:01:05 Ends: NULL Status: ENABLED Originator: 1 character_set_client: cp850 collation_connection: cp850_general_ci Database Collation: utf8mb4_0900_ai_ci
FROM 或 IN 子句
您可以使用 FROM 子句从特定数据库中检索事件描述。
示例
假设我们已经使用 CREATE DATABASE 语句创建了一个名为 demo 的数据库 -
CREATE DATABASE demo;
现在,让我们使用 CREATE TABLE 语句在其中创建一个表 -
CREATE TABLE demo.Data (Name VARCHAR(255), age INT);
让我们创建两个名为 example_event1 和 example_event2 的事件,它会在执行一分钟后在上面创建的表中插入一条记录 -
CREATE EVENT demo.example_event ON SCHEDULE AT CURRENT_TIMESTAMP + INTERVAL 1 Hour DO INSERT INTO new.Data VALUES('Rahman', 25); CREATE EVENT demo.event_hourly ON SCHEDULE EVERY 1 MONTH DO TRUNCATE TABLE data;
以下查询列出了名为 demo 的数据库中所有(即将发生的)事件 -
SHOW EVENTS FROM demo\G;
输出
以下是上述查询的输出 -
************* 1. row ************* Db: demo Name: event_hourly Definer: root@localhost Time zone: SYSTEM Type: RECURRING Execute at: NULL Interval value: 1 Interval field: MONTH Starts: 2021-05-12 22:13:53 Ends: NULL Status: ENABLED Originator: 1 character_set_client: utf8mb4 collation_connection: utf8mb4_0900_ai_ci Database Collation: utf8mb4_0900_ai_ci ************* 2. row ************* Db: demo Name: example_event Definer: root@localhost Time zone: SYSTEM Type: ONE TIME Execute at: 2021-05-12 23:13:10 Interval value: NULL Interval field: NULL Starts: NULL Ends: NULL Status: ENABLED Originator: 1 character_set_client: utf8mb4 collation_connection: utf8mb4_0900_ai_ci Database Collation: utf8mb4_0900_ai_ci 2 rows in set (0.26 sec)
您也可以使用 IN 子句代替 FROM 作为 -
SHOW EVENTS IN demo\G;
输出
执行上述查询后,它将生成如下所示的输出 -
************** 1. row ************** Db: demo Name: event_hourly Definer: root@localhost Time zone: SYSTEM Type: RECURRING Execute at: NULL Interval value: 1 Interval field: MONTH Starts: 2023-12-13 12:04:41 Ends: NULL Status: ENABLED Originator: 1 character_set_client: cp850 collation_connection: cp850_general_ci Database Collation: utf8mb4_0900_ai_ci ************** 2. row ************** Db: demo Name: example_event Definer: root@localhost Time zone: SYSTEM Type: ONE TIME Execute at: 2023-12-13 13:04:35 Interval value: NULL Interval field: NULL Starts: NULL Ends: NULL Status: ENABLED Originator: 1 character_set_client: cp850 collation_connection: cp850_general_ci Database Collation: utf8mb4_0900_ai_ci
LIKE 子句
使用 LIKE 子句,您可以指定一个模式来检索特定的表。以下查询检索名称以字母 "e" 开头的事件的信息。
SHOW EVENTS LIKE 'e%'\G;
输出
以下是上述查询的输出 -
************** 1. row ************** Db: demo Name: event_hourly Definer: root@localhost Time zone: SYSTEM Type: RECURRING Execute at: NULL Interval value: 1 Interval field: MONTH Starts: 2023-12-13 12:04:41 Ends: NULL Status: ENABLED Originator: 1 character_set_client: cp850 collation_connection: cp850_general_ci Database Collation: utf8mb4_0900_ai_ci ************** 2. row ************** Db: demo Name: example_event Definer: root@localhost Time zone: SYSTEM Type: ONE TIME Execute at: 2023-12-13 13:04:35 Interval value: NULL Interval field: NULL Starts: NULL Ends: NULL Status: ENABLED Originator: 1 character_set_client: cp850 collation_connection: cp850_general_ci Database Collation: utf8mb4_0900_ai_ci
WHERE 子句
您可以使用 SHOW EVENTS 语句的 WHERE 子句检索符合指定条件的表的名称。
示例
以下查询列出了名为 demo 的数据库中 recurring 类型的事件。这里我们使用了带有 WHERE 子句的 SHOW EVENTS 语句。
SHOW EVENTS FROM demo WHERE Type = 'RECURRING'\G;
输出
执行上述查询后,将生成以下输出 -
*************************** 1. row *************************** Db: demo Name: event_hourly Definer: root@localhost Time zone: SYSTEM Type: RECURRING Execute at: NULL Interval value: 1 Interval field: MONTH Starts: 2023-12-13 12:04:41 Ends: NULL Status: ENABLED Originator: 1 character_set_client: cp850 collation_connection: cp850_general_ci Database Collation: utf8mb4_0900_ai_ci