すべてのプロダクト
Search
ドキュメントセンター

PolarDB:SAVEPOINT

最終更新日:May 31, 2024

SAVEPOINTは、現在のトランザクション内に新しいセーブポイントを確立します。

説明

セーブポイントは、トランザクション内の特別なマークであり、確立後に実行されるすべてのコマンドをロールバックして、トランザクションの状態をセーブポイント時の状態に復元できます。

概要

SAVEPOINT savepoint_name

パラメーター

savepoint_name: 新しいsavepointに付ける名前。 同じ名前のセーブポイントがすでに存在する場合、新しい同じ名前のセーブポイントがリリースされるまでアクセスできません。

  • セーブポイントにロールバックするには、ROLLBACKを使用します。 RELEASE SAVEPOINTを使用してセーブポイントを破棄し、確立後に実行されたコマンドの効果を維持します。

  • Savepointsは、トランザクションブロック内にある場合にのみ確立できます。 トランザクション内に複数のセーブポイントを定義することができる。

セーブポイントを確立し、確立後に実行されたすべてのコマンドの効果を後で元に戻すには:

BEGIN;
        table1値に挿入 (1);
        SAVEPOINT my_savepoint;
        table1値に挿入する (2);
        SAVEPOINTにロールバックmy_savepoint;
        table1値に挿入する (3);
    コミット; 

上記のトランザクションは値1と3を挿入しますが、2は挿入しません。

セーブポイントを確立して後で破壊するには:

BEGIN;
        table1値に挿入する (3);
        SAVEPOINT my_savepoint;
        table1値に挿入する (4);
        リリースSAVEPOINT my_savepoint;
    コミット; 

上記のトランザクションは3と4の両方を挿入します。