Skip to content

Latest commit

 

History

History
47 lines (33 loc) · 1.53 KB

sql-statement-begin.md

File metadata and controls

47 lines (33 loc) · 1.53 KB
title summary aliases
BEGIN | TiDB SQL Statement Reference
An overview of the usage of BEGIN for the TiDB database.
/docs/dev/sql-statements/sql-statement-begin/
/docs/dev/reference/sql/statements/begin/

BEGIN

This statement starts a new transaction inside of TiDB. It is similar to the statements START TRANSACTION and SET autocommit=0.

In the absence of a BEGIN statement, every statement will by default autocommit in its own transaction. This behavior ensures MySQL compatibility.

Synopsis

BeginTransactionStmt ::=
    'BEGIN' ( 'PESSIMISTIC' | 'OPTIMISTIC' )?
|   'START' 'TRANSACTION' ( 'READ' ( 'WRITE' | 'ONLY' ( 'WITH' 'TIMESTAMP' 'BOUND' TimestampBound )? ) | 'WITH' 'CONSISTENT' 'SNAPSHOT' )?

Examples

mysql> CREATE TABLE t1 (a int NOT NULL PRIMARY KEY);
Query OK, 0 rows affected (0.12 sec)

mysql> BEGIN;
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 compatibility

TiDB supports the syntax extension of BEGIN PESSIMISTIC or BEGIN OPTIMISTIC. This enables you to override the default transactional model for your transaction.

See also