PostgreSql INSERT FROM SELECT RETURNING ID
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PostgreSql INSERT FROM SELECT RETURNING ID相关的知识,希望对你有一定的参考价值。
在PostgreSql 9.2.4中我有两个表:user (id, login, password, name)
和dealer (id, user_id)
。
我想插入两个表格,返回创建的经销商的ID。
目前我正在做两个查询:
WITH rows AS (
INSERT INTO "user"
(login, password, name)
VALUES
('dealer1', 'jygbjybk', 'Dealer 1')
RETURNING id
)
INSERT INTO dealer (user_id)
SELECT id
FROM rows;
SELECT currval('dealer_id_seq');
但是,我可以使用INSERT
语句使用单个RETURNING
查询来实现此功能吗?
答案
你只需要在你的RETURNING id
上添加一个INSERT ... SELECT
:
WITH rows AS (...)
INSERT INTO dealer (user_id)
SELECT id
FROM rows
RETURNING id;
但是:ぁzxswい
以上是关于PostgreSql INSERT FROM SELECT RETURNING ID的主要内容,如果未能解决你的问题,请参考以下文章
“INSERT INTO ... FETCH ALL FROM ...”无法编译