2017-08-03 8 views
-1

複数のテーブルにデータを挿入するPostgres関数を作成していますが、いずれかが失敗した場合はトランザクションをロールバックします。しかし、コードを書く間にトランザクションを開始します。エラー:以下のエラーが表示されます。エラー:「トランザクション」またはその近くの構文エラー関数内でコミット/ロールバック中のPostgreSQLエラー

+1

コードを投稿... – Nicarus

答えて

0

PL/PgSQL関数はトランザクションを開始またはコミットできません。

自律型トランザクションが必要なように見えますが、サポートされていません。

おそらくPL/PgSQL BEGIN ... EXCEPTION ...ブロックで必要な処理を行うことができます。 RAISEコマンドを使用して(サブ)トランザクションを中断して、ROLLBACKの代わりにエラーを発生させることができます。