问题报告 纠错本页面

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允许省略它。

又见

BEGIN, COMMIT, ROLLBACK, ROLLBACK TO SAVEPOINT, SAVEPOINT