PostgreSql INSERT FROM SELECT RETURNING ID

前端之家收集整理的这篇文章主要介绍了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');

但是可以使用RETURNING语句使用单个INSERT查询实现吗?

你只需要添加一个RETURNING id到你的INSERT … SELECT:
WITH rows AS (...)
INSERT INTO dealer (user_id)
    SELECT id
    FROM rows
    RETURNING id;

演示:http://sqlfiddle.com/#!12/75008/1

原文链接:https://www.f2er.com/postgresql/193258.html

猜你在找的Postgre SQL相关文章