This statement commits a transaction inside of the TIDB server.
In the absence of a BEGIN
or START TRANSACTION
statement, the default behavior of TiDB is that every statement will be its own transaction and autocommit. This behavior ensures MySQL compatibility.
CommitStmt:
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)
COMMIT
statement could result in an error. By contrast, TiDB uses optimistic concurrency control and conflicts may result in COMMIT
returning an error.UNIQUE
and PRIMARY KEY
constraint checks are deffered until statement commit. This behavior can be changed by setting tidb_constraint_check_in_place=TRUE
.