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;