# START TRANSACTION / BEGIN

使用 `START TRANSACTION` 或 `BEGIN` 开启显式事务。之后的数据修改由 `COMMIT` 提交，或由 `ROLLBACK` 回滚。

## 语法

```sql
START TRANSACTION;
BEGIN;
```

## 示例

请在自建测试数据库的同一个客户端连接中运行。示例创建测试表并在结束后删除。

```sql
CREATE TABLE txn_example (id INT PRIMARY KEY);
START TRANSACTION;
INSERT INTO txn_example VALUES (1);
ROLLBACK;
SELECT COUNT(*) FROM txn_example;
DROP TABLE txn_example;
```

回滚后，`COUNT(*)` 的结果值为 `0`。

相关语句见[事务](index.md)、[INSERT](../Data-Manipulation-Language/insert.md)。
