1

postgresql で複数の SQL ステートメントが一度に実行される場合 (pgadmin では、これらのステートメントをすべて選択し、この図のように [実行] ボタンをクリックします)、 ここに画像の説明を入力
サーバーは最後のステートメントが完了するまで待機してから、前のステートメントが有効になります。これらのステートメントが実行されているときに実行するSELECT * FROM tablename1と、「関係が存在しません」というエラーが発生します。

実行後にステートメントを有効にする方法はありますか。注: すべての CREATE ステートメントを単独で実行する場合、必要な時間は非常に短くなります。SELECT ステートメントには長い時間が必要です。

4

1 に答える 1

3

pgadminで一連のステートメントを選択して「実行」を押すと、それらはすべて1つのトランザクションで実行されると思います。つまり、トランザクションの結果は、コミットするまで他の同時セッションには表示されません(または、トランザクションが失敗した場合はまったく表示されません)。

COMMIT;それぞれCREATE TABLEの後に、または最後の後に明示的に追加してみてください。

トランザクション分離についても読むことをお勧めします。

于 2012-06-21T09:10:22.413 に答える