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
キーワードを省略することができます。