PostgreSQL での RETURNING による複数の INSERT の連鎖
階層データベース構造を操作する場合、多くの場合、依存関係のある複数のテーブルにデータを挿入する必要があります。 PostgreSQL では、データ変更 CTE と RETURNING 句の組み合わせが効率的なソリューションを提供します。
親テーブル table1 に新しい行を挿入し、子テーブル table2 と table3 に関連する行を設定するには、次の手順に従います。手順:
WITH ins1 AS ( INSERT INTO table1 (username, name, surname) VALUES ('johnee','john','smith') RETURNING user_id ) , ins2 AS ( INSERT INTO table2 (user_id, password) SELECT ins1.user_id, 'secret' FROM ins1 ) INSERT INTO table3 (user_id, adress, city, phone) SELECT ins1.user_id, ... FROM ins1 RETURNING user_id;
CTE の分析チェーン:
データ変更 CTE を使用する利点:
以上がPostgreSQL で RETURNING を使用して複数の INSERT ステートメントを効率的にチェーンするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。