RELEASE SAVEPOINTは、現在のトランザクションで事前に設定されていたセーブポイントを破棄します。
セーブポイントを破棄すると、ロールバックするポイントとして使用できなくなります。 他にユーザの目に付くような動作はありません。 このコマンドは、セーブポイントの設定後に実行されたコマンドの効果を取り消すわけではありません (これを行う方法はROLLBACK TO SAVEPOINTを参照してください)。 不要になったセーブポイントを破棄することにより、システムがトランザクションの終了前に多少のリソースを回収することができます。
また、RELEASE SAVEPOINTが実行されると、指定したセーブポイントの後に設定されたセーブポイントは全て破棄されます。
設定されていないセーブポイント名を指定するとエラーになります。
トランザクションがアボート状態の時には、セーブポイントを解放することはできません。
同じ名前のセーブポイントが複数存在する場合、最後に設定されたセーブポイントが解放されます。
セーブポイントを設定し、その後、破棄します。
BEGIN; INSERT INTO table1 VALUES (3); SAVEPOINT my_savepoint; INSERT INTO table1 VALUES (4); RELEASE SAVEPOINT my_savepoint; COMMIT;
上記のトランザクションでは、3と4の両方が挿入されます。