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
は、テーブルを参照するため無効です。