📣

TiDB Cloud Serverless 现已更名为
Starter
!此页面由 AI 自动翻译,英文原文请见
此处。

START TRANSACTION

此语句在 TiDB 中启动一个新的事务。它类似于 BEGIN 语句。

在没有使用 START TRANSACTION 语句的情况下,每个语句默认会在自己的事务中自动提交。这一行为确保了与 MySQL 的兼容性。

概要

BeginTransactionStmt:

BeginTransactionStmt
BEGINPESSIMISTICOPTIMISTICSTARTTRANSACTIONREADWRITEONLYWITHTIMESTAMPBOUNDTimestampBoundAsOfClauseWITHCONSISTENTSNAPSHOTWITHCAUSALCONSISTENCYONLY
AsOfClause
ASOFTIMESTAMPExpression

示例

mysql> CREATE TABLE t1 (a int NOT NULL PRIMARY KEY); Query OK, 0 rows affected (0.12 sec) mysql> START TRANSACTION; Query OK, 0 rows affected (0.00 sec) mysql> INSERT INTO t1 VALUES (1); Query OK, 1 row affected (0.00 sec) mysql> COMMIT; Query OK, 0 rows affected (0.01 sec)

MySQL 兼容性

  • START TRANSACTION 立即在 TiDB 中启动一个事务。这与 MySQL 不同,MySQL 中的 START TRANSACTION 是惰性创建事务的。但在 TiDB 中,START TRANSACTION 等同于 MySQL 的 START TRANSACTION WITH CONSISTENT SNAPSHOT

  • 语句 START TRANSACTION READ ONLY 被解析以实现与 MySQL 的兼容,但仍然允许写操作。

相关链接

文档内容是否有帮助?