PostgreSQL の INSERT...RETURNING と CTE を使用して子テーブルに複数の値を挿入する
親テーブル table1 から新しく抽出された user_id を挿入するにはPostgreSQL は、子テーブル table2 と table3 にデータを変更する共通テーブル式を使用した洗練されたソリューションを提供します。 (CTE)。
CTE を使用すると、複数の INSERT ステートメントを連鎖させて、単一のトランザクションで複数の操作を実行できます。
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;
このコードは、段階的なプロセスに従います。
キーポイント:
以上がPostgreSQL CTE と INSERT...RETURNING はどのようにして親テーブルと子テーブルにデータを効率的に挿入できるのでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。