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

関連項目

BEGIN, COMMIT, ROLLBACK, ROLLBACK TO SAVEPOINT, SAVEPOINT