Вставить в 2 связанные таблицы из одного SELECT с помощью POSTGRES - PullRequest
0 голосов
/ 24 сентября 2018

Попытка переместить данные из одной таблицы cc в 2 таблицы aa и bb, связанные внешним ключом:

Table cc
====
data_a, data_b


Table aa
====
id, data_a


Table bb
====
id, data_b, aa_id

Таблица bb имеет внешний ключ aa_id,Мне нужно создать строку в aa с cc.data_a и строку в bb с cc.data_b и вновь созданным aa.id.

Возможно ли это, и если да, то как?

1 Ответ

0 голосов
/ 24 сентября 2018

Это то, что вы хотите?

with ar as (
      insert into aa (data_a)
         select distinct data_a
         from cc
         returning *
     )
insert into bb (data_b, aa_id)
    select cc.data_b, ar.id
    from cc join
         ar
         on cc.data_a = ar.data_a;

Предполагается, что вы заранее определили a и b со столбцами serial id.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...