PingKai Logo下载

DO

DO 执行表达式,但不会返回任何结果。在大多数情况下,DO 等同于不返回结果的 SELECT expr, ...。

在 MySQL 中,一个常见的用例是执行存储过程或触发器。由于 TiDB 不提供存储过程或触发器,此功能的使用有限。

语法简介

DoStmt
DO ExpressionList
ExpressionList
Expression ,
Expression
singleAtIdentifier assignmentEq NOT Expression logOr XOR logAnd Expression MATCH ( ColumnNameList ) AGAINST ( BitExpr FulltextSearchModifierOpt ) PredicateExpr IsOrNotOp NULL CompareOp singleAtIdentifier assignmentEq PredicateExpr AnyOrAll SubSelect IsOrNotOp trueKwd falseKwd UNKNOWN

示例

这个 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 兼容性

TiDB 中的 DO 语句与 MySQL 完全兼容。如果你发现任何兼容性差异,请报告一个 bug。

相关链接