示例
示例
START TRANSACTION;
INSERT INTO t (id) VALUES (1);
SAVEPOINT sp1;
INSERT INTO t (id) VALUES (2);
ROLLBACK TO SAVEPOINT sp1; -- 只撤销 id=2 的插入
RELEASE SAVEPOINT sp1; -- 释放(可选,COMMIT 时自动清理)
COMMIT; -- id=1 生效| 粒度 | 保存点之间可嵌套;同名保存点会覆盖旧点(MySQL 行为) |
|---|---|
| 典型场景 | 批量导入:坏数据回滚到保存点后继续下一批 |
| 释放 | RELEASE SAVEPOINT 只是删除标记,不影响已执行的数据 |