MySQL - DROP EVENT 语句
MySQL DROP EVENT 语句
MySQL 事件只不过是按照特定计划执行的任务。一个事件可以包含一个或多个 MySQL 语句,这些语句存储在数据库中,并按照指定的计划执行。
DROP EVENT 语句用于删除现有事件。
语法
以下是在 MySQL 中创建表的语法 -
DROP EVENT event_name;
其中,event_name 是您需要删除的事件的名称。
示例
假设我们已经使用 CREATE TABLE 语句创建了一个名为 data 的表,如下所示 -
CREATE TABLE Data (Name VARCHAR(255), age INT);
以下查询将创建两个名为 example_event 和 event_hourly 的事件,并在执行一分钟后将一条记录插入上述创建的表中 -
CREATE EVENT example_event ON SCHEDULE AT CURRENT_TIMESTAMP +
INTERVAL 1 Hour DO INSERT INTO new.Data VALUES('Rahman', 25);
CREATE EVENT event_hourly ON SCHEDULE EVERY 1
MONTH DO TRUNCATE TABLE data;
SHOW EVENTS 语句列出所有(即将发生的)事件。
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: example_event
Definer: root@localhost
Time zone: SYSTEM
Type: ONE TIME
Execute at: 2023-12-05 15:50:55
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
************* 3. 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
以下查询将删除上面创建的事件
DROP EVENT event_hourly; DROP EVENT example_event;
验证
删除后,如果使用 SHOW EVENTS 语句验证事件列表,您将得到一个空集,如下所示 -
SHOW EVENTS; Empty set (0.00 sec)
IF EXISTS 子句
如果您尝试删除不存在的事件,则会生成错误。
DROP EVENT NEW;
上述查询将生成以下错误 -
ERROR 1539 (HY000): Unknown event 'NEW'
如果将 IF EXISTS 子句与 DROP EVENT 语句一起使用(如下所示),则指定的 EVENT 将被删除,并且如果具有给定名称的 EVENT 不存在,则查询将被忽略。
DROP TABLE IF EXISTS NEW;

