我有两个表的关系为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] 删除。
我来说两句