RELEASE SAVEPOINT

Name

RELEASE SAVEPOINT -- 删除一个前面定义的保存点

Synopsis

RELEASE [ SAVEPOINT ] savepoint_name

描述

RELEASE SAVEPOINT 删除一个当前事务前面定义的保存点。

把一个保存点删除就令其无法作为回滚点使用,除此之外它没有其它用户可见的行为。 它并不能撤销在保存点建立起来之后执行的命令的影响。 (要撤销那些命令,参阅 ROLLBACK TO。) 在不再需要的时候删除一个保存点可以令系统在事务结束之前提前回收一些资源。

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:2003 标准。 标准声明关键字 SAVEPOINT 是必须的。 PostgreSQL 允许省略 SAVEPOINT 关键字。

又见

BEGIN, COMMIT, ROLLBACK, ROLLBACK TO, SAVEPOINT