START TRANSACTION
此语句在 TiDB 中启动一个新的事务。它类似于 BEGIN 语句。
在没有使用 START TRANSACTION 语句的情况下,每个语句默认会在自己的事务中自动提交。这一行为确保了与 MySQL 的兼容性。
概要
BeginTransactionStmt:
- BeginTransactionStmt
- AsOfClause
示例
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 的兼容,但仍然允许写操作。