大佬教程收集整理的这篇文章主要介绍了PostgreSQL多INSERT …返回多列,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
table1 (user_iD,username,name,surname,emp_datE) table2 (pass_ID,user_iD,password) table3 (user_dt_ID,adress,city,phonE)
可以看出table2和table3是table1的子表.
我可以在table1(parent)中提取新插入行的user_iD:
INSERT INTO "table1" (default,'johnee','john','smith',default) RETURNING userID;
我需要将新提取的ID(来自table1)插入table2和table3的user_iD列以及这些表的唯一数据.基本上3 X INSERT ……
我怎么做?
WITH ins1 AS ( INSERT INTO table1 (username,surName) VALUES ('johnee','smith') RETURNING user_iD ),ins2 AS ( INSERT INTO table2 (user_iD,password) SELECT ins1.user_iD,'secret' FROM ins1 -- nothing to return here ) INSERT INTO table3 (user_iD,phonE) SELECT ins1.user_iD,... FROM ins1 RETURNING user_iD;
>建议始终为INSERT添加列定义列表(ad-hoc代码除外).否则,如果表结构发生变化,您的代码可能会以惊人的方式中断.
>我省略了列定义列表中您只需输入DEFAulT的列.默认值自动应用.更短,相同的结果.
>如果你想要返回结果user_iD,那么最后的RETURNING是可选的(显然是从一个序列或其他默认值.它实际上从table3返回user_iD,但除非你有一些触发器或其他魔法干扰,否则它是相同的.
有关数据修改(a.k.a.“可写”)CTE的更多详细信息:
以上是大佬教程为你收集整理的PostgreSQL多INSERT …返回多列全部内容,希望文章能够帮你解决PostgreSQL多INSERT …返回多列所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。