Массовая вставка в более чем один столбец в PostgreSQL - PullRequest
0 голосов
/ 21 ноября 2011

У меня есть один запрос массовой вставки

insert into table1(shift) select value from table2 where transid='shiftid'

Этот запрос вставляет все значения сдвига из таблицы2 в мой столбец сдвига таблицы 1.

Но что, если я хочу вставить запись в несколькостолбцы в таблице 1, но мой запрос на выборку вернет только один столбец, скажем:

select value from table1 where transid in ('shiftid','gradeid','currencyid')

Он вернет один столбец со всеми значениями.Но я хочу вставить:

insert into table1(shift,grade,currency) ...........

Может кто-нибудь заполнить .... для меня?Я надеюсь, вы понимаете мое требование.

1 Ответ

1 голос
/ 21 ноября 2011

Я не знаю, как выглядят ваши таблицы, но все, что вам нужно, это убедиться, что количество столбцов в INSERT и SELECT совпадает и что они имеют совместимые типы.Так что-то вроде этого:

insert into table1 (shift, grade, currency)
select shift_id, grade_id, currency_id
from table2
where transid in ('shiftid', 'gradeid', 'currencyid')

Столбцы в SELECT зависят от того, как выглядит table2.

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