MySQL - DO 語句



MySQL 語句的 DO 語句用於執行 MySQL 表示式。這類似於 SELECT 語句,並且它不返回值。

示例

SLEEP() 函式接受一個整數值並暫停指定的秒數。執行以下查詢後,它將等待 15 秒並被執行,因為我們使用了 SELECT 語句,此查詢生成一個結果集,其中包含 0,如下所示 -

mysql> SELECT SLEEP(15);
+-----------+
| SLEEP(15) |
+-----------+
| 0         |
+-----------+

如果您使用 DO 語句,它只會暫停指定的時間 -

rettyprint notranslate">
mysql> DO SLEEP(15);

如您所見,如果您使用 DO 語句,將不會顯示結果集。

示例

以下是另一個演示 DO 語句用法的示例。它建立一個事件,該事件每月截斷表資料 -

mysql> CREATE EVENT event_hourly ON SCHEDULE EVERY 1 MONTH DO TRUNCATE TABLE data;

示例

假設我們使用 CREATE TABLE 語句建立了一個名為 data 的表,如下所示 -

mysql> CREATE TABLE Data (Name VARCHAR(255), age INT);

以下查詢建立了兩個名為 example_event1 和 example_event2 的事件,它在執行後一分鐘在上面建立的表中插入一條記錄

mysql> CREATE EVENT example_event ON SCHEDULE AT CURRENT_TIMESTAMP + INTERVAL 1 Hour DO INSERT INTO new.Data VALUES('Rahman', 25);

mysql> CREATE EVENT event_hourly ON SCHEDULE EVERY 1 MONTH DO TRUNCATE TABLE data;

SHOW EVENTS 語句列出所有(即將發生的)事件。

mysql> SHOW EVENTS;

這將生成以下輸出 -

+------+---------------+----------------+-----------+-----------+---------------------+----------------+----------------+---------------------+------+---------+------------+----------------------+----------------------+--------------------+
| Db   | Name          | Definer        | Time zone | Type      | Execute at          | Interval value | Interval field | Starts              | Ends | Status  | Originator | character_set_client | collation_connection | Database Collation |
+------+---------------+----------------+-----------+-----------+---------------------+----------------+----------------+---------------------+------+---------+------------+----------------------+----------------------+--------------------+
| new  | event_hourly  | root@localhost | SYSTEM    | RECURRING | NULL                | 1              | MONTH          | 2021-03-10 20:58:41 | NULL | ENABLED | 1          | cp850                | cp850_general_ci     | utf8mb4_0900_ai_ci |
| new  | example_event | root@localhost | SYSTEM    | ONE TIME  | 2021-03-10 21:58:33 | NULL           | NULL           | NULL                | NULL | ENABLED | 1          | cp850                | cp850_general_ci     | utf8mb4_0900_ai_ci |
+------+---------------+----------------+-----------+-----------+---------------------+----------------+----------------+---------------------+------+---------+------------+----------------------+----------------------+--------------------+
2 rows in set (0.09 sec)
mysql_statements_reference.htm
廣告