【发布时间】:2018-01-22 22:59:09
【问题描述】:
我有三张桌子:
table1(id, name, foo)
表 2(ID,名称)
table3(id, id2, name, foo, bar)
我想将table1中的数据复制到表2和3,但table3.id2必须对应table2中的行。我想我需要对 RETURNING 命令做点什么,但我一直没有成功。
WITH oldstuff AS (
SELECT name, foo, 'some value' AS bar
FROM table1
),
newstuff AS (
INSERT INTO table2 (name)
SELECT name FROM oldstuff
RETURNING id AS id2 /* but i also need oldstuff.name, oldstuff.foo,and oldstuff.bar */
)
INSERT INTO table3 (id2, name, foo, bar)
SELECT * FROM newstuff; /* I cant just do a join here because the fields arent unique */
【问题讨论】:
标签: sql postgresql