ほとんどのデータベースに制限があることは知っていますが、Postgresにはありません。トランザクションでは、任意の数のテーブルの作成、列の変更、およびインデックスの変更を実行でき、変更は他のユーザーには表示されません。ユニットCOMMITは成功します。それがデータベースのあり方です! :-)
SQL Serverの場合、トランザクション内でDDLを実行できますが、SQL Serverはメタデータをバージョン管理しないため、トランザクションがコミットされる前に変更が他のユーザーに表示されます。ただし、一部のDDLステートメントは、トランザクション中にロールバックできますが、どのステートメントに対して機能し、どのステートメントに対して機能しないかについては、いくつかのテストを実行する必要があります。