如何使用 PostgreSQL 中的单个查询将两条相关记录插入到两个不同的表中?

北落师门

我有两个表的关系为id我想插入两个相关的记录。问题是id直到我第一次插入才知道。有没有办法编写一种嵌入式查询,使两个插入都正确?如果可能的话,我想要一个精确的查询并避免变量。我试过的是:

insert into "b" ("value", "b_id")
  select 'val2', (select insert into "a" ("value") values ('val1') returning id);

我收到错误:

ERROR: syntax error at or near "("
贝尔吉

您需要使用CTE来做到这一点,INSERT语句不能任意嵌套(与 不同SELECT):

WITH a_results AS (
  INSERT INTO a (value)
  VALUES ('val1')
  RETURNING id
)
INSERT INTO b (value, b_id)
SELECT 'val2', id
FROM a_results;

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

使用 MyBatis。如何在一个表中映射两条不同的记录,然后在加入该表时构造单个查询结果?

如何计算 PostgreSQL 中两个不同列中单个值的 DISTINCT 出现次数?

如何使用 PHP 和 MYSQL 将数据插入到两个不同的表中

使用PostgreSQL将两个选择查询的结果添加到一个表行中

PostgreSQL中如何将两个带有动态表名的SQL查询合二为一

如何在 PostgreSQL 中连接两个表?

使用Laravel查询构建器将记录插入到两个表或一个表中,具体取决于记录是否存在

如何使用PostgreSQL从Django中的两个表中检索数据

Postgresql如何对同一个表中的两个选择使用联合?

在PostgreSQL的同一查询中如何使用两个SUM()聚合函数?

如何在Codeigniter中使用单个查询在两个单独的表中插入数据?

如何从两个不同的文件中打印两条匹配的行?

将DISTINCT和RANDOM与PostgreSQL中的两个表一起使用

PostgreSQL:如何合并两个查询

如何从两个不同的表中获取最近城市的距离并将其合并到 PostgreSQL 中的 1 列中

SQL。如何一次将数据插入到两个表中,当一个表与另一个使用外键相关时

如何使用php将记录插入两个mysql表中?

如何将两个不同的表中的两个选择语句显示到具有列的单个表中

使用PostgreSQL合并两个表

如何在postgresql中与特定ID相关的两个日期时间之间选择数据

如何使用PostgreSQL连接来自不同数据库的两个表?

如何在Oracle数据库中查找两条记录(两个不同的列)之间的时间间隔(以分钟为单位)

使用子查询查看单个表中两个表的不同列

在单个查询中插入到2个表中PostgreSQL

如何链接两个表,但仅从PostgreSQL中的一个表获取MAX值?

Oracle 使用单个查询更新和更改两个表中的几列记录

如何使用两个表中超过 750,000 条记录的两个表的并集来优化 mysql 查询?

EF Core,一对多关系 - 如何使用单个视图在两个表中插入记录?

如何通过单击将数据插入到两个表中,而在另一个表中使用第一个查询ID