使用PostgreSQL 的INSERT...RETURNING 和CTE 向子表插入多個值
從父表table1 插入新提取的_user_id在其子表table2 和table3 中,PostgreSQL使用資料修改通用表表達式提供了一個優雅的解決方案(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中文網其他相關文章!