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が挿入されます。