【发布时间】:2015-02-18 01:47:32
【问题描述】:
所以我试图将一个值插入到辅助表中,从插入中获取返回的 id,并将其与我正在编写的准备好的语句中的一些值一起使用。第一个语句的返回 (table2)是第一个表中外键列的 id。 我想最后得到表1的id。类似:
WITH table2ID AS
(
INSERT INTO table2 (value) VALUES ('somevalue') RETURNING id;
)
INSERT INTO table1(table2returnvalue,othervalue) VALUES
(table2ID 'val2') RETURNING id
我可以看到我可能还需要一个事务,因为如果 table1 的语句由于某种原因失败,我不希望 table2 中的隔离。
你能帮忙吗?
【问题讨论】:
-
您的问题到底是什么?单个语句(这就是您所拥有的)始终是原子的。它要么完全成功,要么完全失败。
-
正如我所指定的,我正在尝试使用先前插入的返回值作为下一个插入语句的值
标签: sql postgresql transactions