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;
廣告