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

