savepoint_name説明セーブポイントの設定後に実行されたコマンドを全てロールバックします。セーブポイントは有効なまま残るので、必要に応じて、その後再度ロールバックすることができます。SAVEPOINTは、指定したセーブポイントより後に設定した全てのセーブポイントを暗黙的に破棄します。パラメータsavepoint_nameロールバック先のセーブポイントです。SAVEPOINTを使用してください。設定されていないセーブポイントの名前を指定するとエラーになります。カーソルはセーブポイントという観点から見るとトランザクションの外にあるかのように振舞います。セーブポイントの内部で開かれたカーソルは全て、そのセーブポイントがロールバックした時に閉ざされます。(つまりFETCHによる位置の移動はロールバックされません)。カーソルのクローズはロールバックしても取り消すことはできません。カーソルの問い合わせにより発生するその他の副作用(問い合わせにより呼出される揮発性関数の影響など)は、セーブポイント内で実行され、それがロールバックされた場合に、ロールバックされます。カーソルの実行によってトランザクションのアボートが引き起こされた場合、そのカーソルは実行不可能状態に遷移します。SAVEPOINTを使用して戻すことができますが、そのカーソルは使用することができません。例my_savepointの設定後に実行されたコマンドの効果を取り消します。my_savepoint;セーブポイントへのロールバックは、カーソル位置に影響を与えません。標準SQLでは、SAVEPOINTキーワードは必須です。PostgreSQLとOracleでは省略することができます。SQLで使用できるのは、WORKのみです。TRANSACTIONは使用できず、ROLLBACKの後のノイズワードとして扱われます。CHAIN句がありますが、これはPostgreSQLでは現在サポートされていません。その他については、このコマンドは標準SQLと互換性を持ちます。