Как вставить несколько значений в таблицу postgres сразу?
у меня есть таблица, что я пытаюсь обновить несколько значений сразу. Вот схема таблицы:
Column | Type | Modifiers
---------------+---------+-----------
user_id | integer |
subservice_id | integer |
у меня есть user_id
и хотите вставить несколько subservice_id
- х сразу. Есть ли синтаксис Postgres
это позволит мне сделать что-то подобное
insert into user_subservices(user_id, subservice_id) values(1, [1, 2, 3]);
как бы я это сделал?
5 ответов:
попробуй:
INSERT INTO user_subservices(user_id, subservice_id) SELECT 1 id, x FROM unnest(ARRAY[1,2,3,4,5,6,7,8,22,33]) x
многозначный синтаксис вставки:
insert into table values (1,1), (1,2), (1,3), (2,1);
но ответ крокодилко гораздо более гладкий.
более короткая версия ответа крокодилко:
insert into user_subservices(user_id, subservice_id) values(1, unnest(array[1, 2, 3]));