title | summary | aliases | ||
---|---|---|---|---|
START TRANSACTION |
TiDB 数据库中 START TRANSACTION 的使用概况。 |
|
START TRANSACTION
语句用于在 TiDB 内部启动新事务。它类似于语句 BEGIN
。
在没有 START TRANSACTION
语句的情况下,每个语句都会在各自的事务中自动提交,这样可确保 MySQL 兼容性。
BeginTransactionStmt:
{{< copyable "sql" >}}
CREATE TABLE t1 (a int NOT NULL PRIMARY KEY);
Query OK, 0 rows affected (0.12 sec)
{{< copyable "sql" >}}
START TRANSACTION;
Query OK, 0 rows affected (0.00 sec)
{{< copyable "sql" >}}
INSERT INTO t1 VALUES (1);
Query OK, 1 row affected (0.00 sec)
{{< copyable "sql" >}}
COMMIT;
Query OK, 0 rows affected (0.01 sec)
START TRANSACTION
语句与 MySQL 不完全兼容。
START TRANSACTION
相当于 MySQL 的START TRANSACTION WITH CONSISTENT SNAPSHOT
,即START TRANSACTION
后执行了一个从 InnoDB 任意表读数据的SELECT
语句(非SELECT FOR UPDATE
)。READ ONLY
及其扩展选项都都只是语法兼容,其效果等同于START TRANSACTION
。
如有任何其他兼容性差异,请在 GitHub 上提交 issue。