行う

DOは式を実行しますが、結果を返しません。ほとんどの場合、 DOは結果を返さないSELECT expr, ...と同等です。

ノート:

DOは式のみを実行します。 SELECTが使用できるすべての場合に使用できるわけではありません。たとえば、 DO id FROM t1はテーブルを参照しているため、無効です。

MySQLでは、一般的なユースケースはストアドプロシージャまたはトリガーを実行することです。 TiDBはストアドプロシージャまたはトリガーを提供しないため、この関数の使用は制限されています。

あらすじ

DoStmt
DOExpressionList
ExpressionList
Expression,
Expression
singleAtIdentifierassignmentEqNOTExpressionlogOrXORlogAndExpressionMATCH(ColumnNameList)AGAINST(BitExprFulltextSearchModifierOpt)PredicateExprIsOrNotOpNULLCompareOpsingleAtIdentifierassignmentEqPredicateExprAnyOrAllSubSelectIsOrNotOptrueKwdfalseKwdUNKNOWN

このSELECTステートメントは一時停止しますが、結果セットも生成します。

mysql> SELECT SLEEP(5);
+----------+
| SLEEP(5) |
+----------+
|        0 |
+----------+
1 row in set (5.00 sec)

一方、DOは、結果セットを生成せずに一時停止します。

mysql> DO SLEEP(5);
Query OK, 0 rows affected (5.00 sec)

mysql> DO SLEEP(1), SLEEP(1.5);
Query OK, 0 rows affected (2.50 sec)

MySQLの互換性

このステートメントは、MySQLと完全に互換性があると理解されています。互換性の違いは、GitHubでは問題を介して報告である必要があります。

も参照してください

エコシステム
TiDB
TiKV
TiSpark
Chaos Mesh
© 2022 PingCAP. All Rights Reserved.