# 事务控制语句

__*控制事务*__
__*BEGIN*__
__*START TRANSACTION*__

+ `START TRANSACTION or BEGIN`: 显式开始新事务
+ `COMMIT`: 使当前事务的更改永久化
+ `ROLLBACK`: 取消当前事务的更改
+ `SET AUTOCOMMIT`: 控制自动提交模式
---------------------------------------------------------
要显式地开启一个新事务,既可以使用 BEGIN 语句,也可以使用 START TRANSACTION 语句,两者效果相同。

语法:

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

如果执行以上语句时,当前 Session 正处于一个事务的中间过程,那么系统会先自动提交当前事务,再开启一个新的事务。

注意:

在 TiDB 中,以下语句等价: 
  BEGIN、START TRANSACTION 和 START TRANSACTION WITH CONSISTENT SNAPSHOT。

TiDB 在执行完上述语句后即会获取当前数据库快照,START TRANSACTION WITH CONSISTENT SNAPSHOT 是语句执行时获取快照。因此,TiDB 中的 BEGIN、START TRANSACTION 和 START TRANSACTION WITH CONSISTENT SNAPSHOT 都等效为 MySQL 中的 START TRANSACTION WITH CONSISTENT SNAPSHOT。
