RELEASE SAVEPOINT
名称
RELEASE SAVEPOINT -- 删除一个先前定义的保存点
语法
RELEASE [ SAVEPOINT ] savepoint_name
描述
RELEASE SAVEPOINT 删除一个当前事务先前定义的保存点。
把一个保存点删除就令其无法作为回滚点使用,除此之外它没有其它用户可见的行为。它并不能撤销在保存点建立起来之后执行的命令的影响。要撤销那些命令可以使用 ROLLBACK TO SAVEPOINT 。在不再需要的时候删除一个保存点可以令系统在事务结束之前提前回收一些资源。
RELEASE SAVEPOINT 也删除所有在指定的保存点建立之后的所有保存点。
参数
- savepoint_name
要删除的保存点的名字
注意
声明一个以前没有定义的保存点名字将导致错误。
如果事务在回滚状态,则不能释放保存点。
如果多个保存点拥有同样的名字,只有最近定义的那个才被释放。
例子
建立并稍后删除一个保存点:
BEGIN;
INSERT INTO table1 VALUES (3);
SAVEPOINT my_savepoint;
INSERT INTO table1 VALUES (4);
RELEASE SAVEPOINT my_savepoint;
COMMIT;
上面的事务将同时插入 3 和 4 。
兼容性
这条命令遵循 SQL 标准。标准规定关键字 SAVEPOINT 是必须的。但 PostgreSQL 允许省略它。