MySQL - 删除事件语句



MySQL 删除事件语句

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;
广告
© . All rights reserved.