13.2.3 DO 声明
DO expr [, expr] ...
DO执行 table 达式,但不返回任何结果。在大多数方面,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仅执行 table 达式。不能在所有可以使用SELECT
的情况下使用。例如,DO id FROM t1
无效,因为它引用了一个 table。