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
广告

© . All rights reserved.