Как вернуть идентификатор из таблицы_1 и вставить в таблицу_2 - PullRequest
0 голосов
/ 06 февраля 2019

Я пытаюсь отправить INSERT один запрос в БД postgresql.Я хочу вставить в таблицу user логин и пароль, затем убрать у пользователя id и вставить в ud_user в таблицы personal_data его id и другие параметры (имя, пол и т. Д.).

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

синтаксическая ошибка в или newar "INTO" LINE 2: VALUES ((INSERT INTO users ...

1 Ответ

0 голосов
/ 06 февраля 2019

В 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;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...