【发布时间】:2015-03-25 13:21:42
【问题描述】:
我使用的是 PostgreSQL 9.3。
我想复制一些数据库记录。由于我对表使用了自动增量 pk id,因此我想从生成的重复记录的 id 到原始记录的 id 中取回 id 映射。例如,假设我有一个表 posts,其中有 2 条记录:
[{'id': 1, 'title': 'first'}
, {'id': 2. 'title': 'second'}]
使用 SQL:
INSERT INTO posts (title) SELECT title FROM posts RETURNING id, ??
我希望看到如下映射:
[{'id': 3, 'from_id': 1}
, {'id': 4, 'from_id': 2}]
知道如何填写上面的问号以使其正常工作吗?非常感谢!
【问题讨论】:
-
我认为您可以通过别名:
FROM posts oldposts,然后在RETURNING子句中引用旧别名和新别名来做到这一点。不过看起来不像。棘手。 -
@CraigRinger 是的,我也试过了。想知道为什么它不能那样工作。
-
它几乎是 stackoverflow.com/questions/7115941 的重复,没有可接受的答案。
标签: sql postgresql sql-insert sql-returning