## 释放保存点 RELEASE SAVEPOINT — 销毁之前定义的保存点 ## 概要 ``` RELEASE [ SAVEPOINT ] savepoint_name ``` ## 描述 `释放保存点`销毁先前在当前事务中定义的保存点。 销毁保存点使其无法作为回滚点,但它没有其他用户可见行为。它不会撤消建立保存点后执行的命令的效果。(为此,请参阅[回滚到保存点](sql-rollback-to.html).) 在不再需要保存点时销毁它允许系统在事务结束之前回收一些资源。 `释放保存点`还会销毁在指定保存点建立后建立的所有保存点。 ## 参数 *`保存点名称`* 要销毁的保存点的名称。 ## 笔记 指定以前未定义的保存点名称是错误的。 当事务处于中止状态时,无法释放保存点。 如果多个保存点具有相同的名称,则仅释放最近定义的一个。 ## 例子 要建立并稍后销毁保存点: ``` BEGIN; INSERT INTO table1 VALUES (3); SAVEPOINT my_savepoint; INSERT INTO table1 VALUES (4); RELEASE SAVEPOINT my_savepoint; COMMIT; ``` 上述事务将插入 3 和 4。 ## 兼容性 该命令符合 SQL 标准。标准规定了关键词`保存点`是强制性的,但 PostgreSQL 允许省略它。 ## 也可以看看 [开始](sql-begin.html),[犯罪](sql-commit.html),[回滚](sql-rollback.html),[回滚到保存点](sql-rollback-to.html),[保存点](sql-savepoint.html)