sql >> データベース >  >> RDS >> PostgreSQL

Javaの例外を除いてPostgresトランザクションを続行します

    障害が SAVEPOINT > 。 psqlの例を次に示します。

    # create temporary table foo (i int primary key);
    CREATE TABLE
    

    トランザクションを開始し、行を挿入します:

    # begin;
    BEGIN
    # insert into foo values(1);
    INSERT 0 1
    

    セーブポイントを開始し、同じ行を2回挿入します。これによりエラーが発生します:

    # savepoint bar;
    SAVEPOINT
    # insert into foo values(2);
    INSERT 0 1
    # insert into foo values(2);
    ERROR:  duplicate key value violates unique constraint "foo_pkey"
    

    セーブポイントにロールバックしてから、別の行を挿入します。

    # rollback to savepoint bar;
    ROLLBACK
    # insert into foo values(3);
    INSERT 0 1
    

    コミットして、そこに何があるかを確認します:

    # commit;
    COMMIT
    # select * from foo;
     i 
    ---
     1
     3
    (2 rows)
    


    1. 1バイトで何文字保存できますか?

    2. SQLiteについて

    3. 結合されたテーブルの列によるクエリの順序付けが遅い

    4. SchemaSpyPostgreSQL-警告-接続エラー