# Transaction Control Statements

__*Transaction Control*__
__*BEGIN*__
__*START TRANSACTION*__

+ Statements **`START TRANSACTION`** or **`BEGIN`**: Explicitly start a new transaction
+ Statement **`COMMIT`**: Make changes to the current transaction permanent
+ Statement **`ROLLBACK`**: Cancel the changes of the current transaction
+ Statement **`SET AUTOCOMMIT = 1|0`**: Control the **`AUTOCOMMIT`** mode on and off
------------------------------------------------------------
To explicitly start a new transaction, you can use either the BEGIN statement or the START TRANSACTION statement, which have the same effect.

syntax:

```
BEGIN;
START TRANSACTION;
START TRANSACTION WITH CONSISTENT SNAPSHOT;
```

If the current Session is in the middle of a transaction when the above statement is executed, the system will automatically commit the current transaction and then start a new transaction.

ATTENTION:

In TiDB,following statements are equivalent: 
  BEGIN、START TRANSACTION 和 START TRANSACTION WITH CONSISTENT SNAPSHOT。

TiDB takes the current DB snapshot after executing the above statement. START TRANSACTION WITH CONSISTECT SNAPSHOT is a snapshot taken when Therefore, the BEGIN, START TRANSACTION, and START TRANSACTION WITH CONSISTECT SNAPSHOT in TiDB are all equivalent to START SNAPSHOT
