【发布时间】:2014-10-27 02:50:43
【问题描述】:
在 DB2 中,我可以执行如下所示的命令来从插入的行中检索信息:
SELECT *
FROM NEW TABLE (
INSERT INTO phone_book
VALUES ( 'Peter Doe','555-2323' )
) AS t
如何在 Postgres 中做到这一点?
有办法检索序列,但我需要检索任意列。
出于性能原因,我希望将选择与插入合并。这样我只需要执行一个语句来插入值并从插入中选择值。插入的值来自子选择而不是值子句。我只需要插入 1 行。
该示例代码来自Wikipedia Insert Article
【问题讨论】:
-
不明白导致您尝试选择并插入一个命令的性能原因是什么。在我看来,您应该在选择之前提交插入操作的提交。
-
@ParisTao:单个命令(返回正确的行,包括自动生成的内容,如序列号)是最简单、最快且最安全的。可能还希望插入/更新更多行(如引用 ID 的其他表中的子行)在提交所有数据之前(或什么都不提交)。
标签: sql postgresql sql-insert