# 释放保存点

RELEASE 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 标准。标准规定了关键词保存点是强制性的,但 PostgreSQL 允许省略它。

# 也可以看看

开始,犯罪,回滚,回滚到保存点,保存点