Возможно ли использование результата запроса select в вставке данных insert?

У меня задача добавить несколько записей в таблицу, но при это одним из значением values должен быть id, который я могу могу получить из другой таблицы. Это возможно будет произвести? СУБД PostgreSQL 9.6


Ответы (2 шт):

Автор решения: Мелкий

Да, возможно. Вы можете использовать в values подзапросы:

insert into tablename (column1, column2) values (
    'value for column1',
    (select id from anothertable where ...)
);

Такой подзапрос должен возвращать одну запись (иначе ошибка). Если подзапрос ничего не нашёл - будет подставлен NULL

Вы можете воспользоваться insert .. select запросом:

insert into tablename (column1, column2) 
select
    'value for column1',
    id
from tablename
--- какой угодно запрос в части select

Эта форма insert может вставлять множество строк за раз.

→ Ссылка
Автор решения: Мингиян Басанов

Добавил условие where isfilterequired = 'true'. Запрос возвращает 43 записи.

→ Ссылка