# 第 7 章 事务与隔离级别 - 可运行代码

## 准备

```bash
# 1. 安装 psycopg v3
pip install "psycopg[binary]>=3.1"

# 2. 初始化测试数据
psql -h 127.0.0.1 -U postgres -d learn_pg -f ../init.sql
```

## 脚本说明

| 脚本 | 主题 | 知识点 |
|---|---|---|
| `01_acid_demo.py` | ACID 演示 | 转账场景验证 A / C / D（隔离性见后文） |
| `02_isolation_levels.py` | 隔离级别现象 | 在 RC / RR / SERIALIZABLE 下复现典型并发问题 |
| `03_savepoint.py` | 保存点 | psycopg v3 的嵌套事务 = SAVEPOINT |
| `04_ssi_serialization_failure.py` | SSI 自动重试 | 多线程并发触发 40001，指数退避重试 |

## 运行

```bash
python 01_acid_demo.py
python 02_isolation_levels.py rc      # 仅跑 READ COMMITTED 场景
python 02_isolation_levels.py rr      # 仅跑 REPEATABLE READ 场景
python 02_isolation_levels.py sz      # 仅跑 SERIALIZABLE 场景
python 02_isolation_levels.py         # 全部
python 03_savepoint.py
python 04_ssi_serialization_failure.py
```
