# Transaction Control Statements

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

+ `START TRANSACTION or BEGIN`: Explicitly start a new transaction
+ `COMMIT`: Make changes to the current transaction permanent
+ `ROLLBACK`: Cancel the changes of the current transaction
+ `SET AUTOCOMMIT`: Control autocommit mode
------------------------------------------------------------
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
