MySQL 9.0 发行说明
DO expr [, expr] ...
DO 执行表达式但不返回任何结果。在大多数情况下,DO 是 SELECT 的简写,但它的优点是,当您不关心结果时,它的速度稍快。expr, ...
DO 主要用于具有副作用的函数,例如 RELEASE_LOCK()。
示例:此 SELECT 语句会暂停,但也会生成结果集
mysql> SELECT SLEEP(5);
+----------+
| SLEEP(5) |
+----------+
| 0 |
+----------+
1 row in set (5.02 sec)
另一方面,DO 会在不生成结果集的情况下暂停。
mysql> DO SLEEP(5);
Query OK, 0 rows affected (4.99 sec)例如,这在存储函数或触发器中很有用,因为它们禁止生成结果集的语句。
DO 仅执行表达式。它不能在 SELECT 可以使用的所有情况下使用。例如,DO id FROM t1 无效,因为它引用了一个表。