2

私は PostgreSQL 9.1.4 に取り組んでいます。

データを2つのテーブルに挿入していますが、うまく機能しています。

両方のテーブルが同じ DB に存在するテーブルにトランザクションを適用したいと考えています。その時点で 2 番目のテーブルが失敗した場合、最初のテーブルはロールバックする必要があります。

「max_prepared_transactions」のプロパティをゼロ以外の値にしようとしました/etc/postgres/postgres.conf。しかし、まだトランザクションのロールバックは機能していません。

4

3 に答える 3

5

postgresql では、コミットやロールバックを関数内で明示的に記述することはできません。シンプルに書くだけでbegin endブロックを使用できると思います

BEGIN;
   insert into tst_table values ('ABC');
   Begin
    insert into 2nd_table values ('ABC');
   EXCEPTION
    when your_exception then
    ROLL BACK;
   END;
END;
于 2014-01-17T11:07:23.473 に答える