PostgreSQL 8.0.0 文書
前のページ | 巻戻し |  | 早送り | 次のページ

# 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:2003標準に準拠しています。 SQL:2003標準では、`SAVEPOINT`は必須であると規定しています。 PostgreSQLでは`SAVEPOINT`キーワードを省略することができます。

## 関連項目

BEGIN, COMMIT, ROLLBACK, ROLLBACK TO SAVEPOINT, SAVEPOINT

前のページ | ホーム | 次のページ
REINDEX | 上に戻る | RESET