gpt4 book ai didi

postgresql - 在 PostgreSQL 中返回插入的行

转载 作者:行者123 更新时间:2023-11-29 11:10:58 25 4
gpt4 key购买 nike

我目前正在研究一个报告生成 servlet,该 servlet 聚合来自多个表的信息并生成报告。除了返回结果行之外,我还将它们存储到一个报告表中,这样它们以后就不需要重新生成,并且如果它们从中提取的表被删除,它们将持续存在。要执行后者,我有一个形式的声明(注意:x 是外部生成的,实际上是该声明中的一个常量):

INSERT INTO reports
(report_id, col_a, col_b, col_c)
SELECT x as report_id, foo.a, bar.b, bar.c
FROM foo, bar

这工作正常,但我需要第二个查询来实际返回结果行,例如

SELECT col_a, col_b, col_c
FROM reports
WHERE report_id = x

这很好用,因为它只涉及单个表,应该不会很昂贵,但似乎我应该能够直接返回插入结果,避免第二次查询。是否有一些我无法找到的用于执行此操作的语法? (我应该指出,我在数据库工作方面还很陌生,所以如果正确的答案是只运行第二个查询,因为它只是稍微慢一点,那就这样吧)

最佳答案

在版本 >= 8.2 的 PostgreSQL 中,您可以使用此构造:

INSERT INTO reports (report_id, col_a, col_b, col_c)
SELECT x as report_id, foo.a, bar.b, bar.c
FROM foo, bar
RETURNING col_a, col_b, col_c

关于postgresql - 在 PostgreSQL 中返回插入的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2276574/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com