データベース スキーマの更新を適用するスクリプトに取り組んでいます。start transaction/commit を使用してすべての SQL 更新スクリプトをセットアップしました。これらのスクリプトをコマンド ラインで psql に渡します。
複数のスクリプトを同時に、1 つのトランザクションで適用する必要があります。これまでのところ、私が思いついた唯一の解決策は、スクリプトの元のセットから開始トランザクション/コミットを削除し、それらを新しい開始トランザクション/コミット ブロック内に詰め込むことです。これをその場で行うためのperlスクリプトを書いています。
事実上、ネストされたトランザクションが必要ですが、postgresql で行う方法がわかりません。
この目的のためにネストされたトランザクションを実行またはシミュレートする方法はありますか? エラーが発生した場合に自動的に救済されるように設定しているため、下位のトランザクションのいずれかが失敗した場合にトップレベルのトランザクションを続行する必要はありません。