PostgreSQL从SELECT插入返回ID

dhxwm5r4  于 2023-03-12  发布在  PostgreSQL
关注(0)|答案(2)|浏览(209)

在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查询来实现这一点吗?

46scxncf

46scxncf1#

您只需要将一个RETURNING id添加到您的INSERT ... SELECT

WITH rows AS (...)
INSERT INTO dealer (user_id)
    SELECT id
    FROM rows
    RETURNING id;

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

nom7f22z

nom7f22z2#

出于我的目的,我需要它在一个变量中,所以我这样做:

INSERT INTO dealer (user_id)
    SELECT id
    FROM rows
    RETURNING id INTO l_dealerid;

相关问题