如何从表_1返回ID并将其插入表_2

时间:2019-02-06 18:25:01

标签: sql insert request psql

我尝试在PostgreSQL DB中发送INSERT一个请求。我想插入表用户的登录名和密码,然后从用户ID中删除,然后在ud_user中插入其ID和其他参数(名称,性别等)到表personal_data中。

INSERT INTO personal_data (id_user, name, gender, city)
VALUES ((INSERT INTO users (login, password) 
VALUES('123', '123')
RETURNING id), 'Max', 'Male', 'Moscow');

语法错误或更新为“ INTO” 第2行:值((插入用户...

1 个答案:

答案 0 :(得分:0)

在Postgres中,您可以使用CTE在同一条语句中更新两个表:

WITH u as (
      INSERT INTO users (login, password) 
          VALUES('123', '123')
          RETURNING id
     )
INSERT INTO personal_data (id_user, name, gender, city)
    SELECT id, 'Max', 'Male', 'Moscow'
    FROM u;