Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Postgresql 在Postgres中使用INSERT-INTO与关联_Postgresql_Insert Into - Fatal编程技术网

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)

仅通过插入无法完成此操作

如果必须在一行中执行此操作,最好的方法是编写一个简短的函数,该函数将进行两次插入。这将导致每次调用一个事务(如果这是主要问题的话)


您也可以使用

我正在从一个单独的应用程序导入数据,因此我不认为使用导入数据会有帮助,但这确实帮助我意识到我可以事先为两个表生成主键,这样当我分别插入它们时,它们就会相互关联