sql - 将 INSERT...RETURNING 的返回值保存到临时表 (PostgreSQL)

标签 sql postgresql

我有一个表 table1,其中包含 idvalue1value2 列。

还有一个问题

INSERT INTO table1(value1,value2) SELECT value3,value4 FROM table2 RETURNING id

返回一组 ID。 我想将返回值(这些 ID)存储在一些临时表中。类似的东西:

INSERT INTO TEMP temp1 INSERT INTO table1(value1,value2) SELECT value3,value4 FROM table2 RETURNING id

我该怎么做?

数据库管理系统是 PostgreSQL

最佳答案

with inserted as (
  INSERT INTO table1 (value1,value2) 
  SELECT value3,value4 
  FROM table2 
  RETURNING id
) 
insert into temp
select id 
from inserted;

这需要 Postgres 9.2 或更高版本。

关于sql - 将 INSERT...RETURNING 的返回值保存到临时表 (PostgreSQL),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27421726/

相关文章:

postgresql - 我可以配置一个表,使插入的行始终具有更大的主键吗

sql - 如果一个不相关的子查询在查询中的几个地方重复出现,是否可以缓存它并重用结果?

mysql - 如何在 Excel 单元格中保存 blob 文件

sql - 正确查询以获取 PostgreSQL 数据库中的当前连接数

sql - 查找所有共同作者 - 多对多映射表的分面/分组

sql - PostgreSQL 从一个表中选择全部并从表关系中加入计数

postgresql - 如何在 PostgreSQL 数据库中找到靠在一起的点?

mysql - 在表中创建多个唯一键是否会减慢读/写时间?

c# - 解析 oledb 的参数化字符串

sql - PostgreSQL:在填充为 json 数组的 JSONB 列中按 json 属性搜索