Postgresql 在Postgres中使用INSERT-INTO与关联
假设我有两张桌子。有没有一种方法可以同时将行插入到这两个行中?当我有一张桌子时,我可以简单地做Postgresql 在Postgres中使用INSERT-INTO与关联,postgresql,insert-into,Postgresql,Insert Into,假设我有两张桌子。有没有一种方法可以同时将行插入到这两个行中?当我有一张桌子时,我可以简单地做 INSERT INTO users (first_name, last_name, email) VALUES ('Tom','Prats','tom@tomprats.com'), ('Tim', 'Prats', tim@tomprats.com); 如果我现在有一个存储电子邮件的表,以及一个存储名字和姓氏的关联表,如何同时插入这两个表?请记住,我正在导入大量数据 表“用户” 列|类型|修饰符
INSERT INTO users (first_name, last_name, email) VALUES ('Tom','Prats','tom@tomprats.com'), ('Tim', 'Prats', tim@tomprats.com);
如果我现在有一个存储电子邮件的表,以及一个存储名字和姓氏的关联表,如何同时插入这两个表?请记住,我正在导入大量数据
表“用户”
列|类型|修饰符
---------------------+---------------+-----------
id |字符(36)|不为空
电子邮件|文本|
索引:
“pk_用户”主键,btree(id)
外键约束:
“fk_用户_属性”外键(属性_id)引用用户_属性(id)
表“用户属性”
列|类型|修饰符
-----------------+---------------+-----------
id |字符(36)|不为空
第一个|名称|文本|
姓氏|文字|
索引:
“主键用户属性”主键,btree(id)
引用人:
表“用户”约束“fk_用户_属性”外键(属性_id)引用用户_属性(id)
仅通过插入无法完成此操作
如果必须在一行中执行此操作,最好的方法是编写一个简短的函数,该函数将进行两次插入。这将导致每次调用一个事务(如果这是主要问题的话)
您也可以使用我正在从一个单独的应用程序导入数据,因此我不认为使用导入数据会有帮助,但这确实帮助我意识到我可以事先为两个表生成主键,这样当我分别插入它们时,它们就会相互关联