Как выбрать отдельный, а затем выполнить мульти-вставку для каждого отдельного результата? - PullRequest
0 голосов
/ 27 апреля 2020

Я хочу выбрать все отдельные orgId в таблице и затем выполнить этот запрос вставки для каждого из отдельных результатов в одну и ту же таблицу?:

INSERT into "ffOrgs" (id, "ffId", "orgId", value, enabled, "createdAt", "updatedAt")
values (uuid_generate_v4(), 1111 , ABC, null, now(), now(), true),
( uuid_generate_v4(), 1001 , ABC, null, now(), now(), true)
( uuid_generate_v4(), 1002 , ABC, null, now(), now(), true)
( uuid_generate_v4(), 1003 , ABC, null, now(), now(), true)

Например, скажем, таблица имеет 5 уникальных orgIds (AB C, DEF, GHI, JKL, MNO), и для каждой из этих организаций я хочу вставить вышеуказанный набор значений. Как бы вы совместили два запроса?

1 Ответ

0 голосов
/ 27 апреля 2020

Я думаю, что вы хотите:

insert into fforgs (id, ffid, orgid, value, enabled, createdat, updatedat)
select uuid_generate_v4(), f.ffId, o.orgId, null, now(), true
from (select distinct ffId from ffOrgs) o
cross join (values(1111, 1001, 1002, 1003)) f(orgId)

Запрос выбирает все отдельные ffId из таблицы, а затем cross join s с фиксированным списком ordId значений. Полученный набор данных вставлен.

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