Задать вопрос
polyanin
@polyanin
Golang, PHP & Symfony developer

Как сделать пакетную вставку данных в таблицу без конкатенации строк?

Приветствую!
есть таблица order_product_link
поля order_id int product_id int
insert into order_product_link (order_id, product_id) values (1, 1),(1, 2),(1, 3)...(1, 100500)
order_id одинаково для всех записей, product_id разные
данные, которые требуется вставить, лежат в массиве []int64
  • Вопрос задан
  • 309 просмотров
Подписаться 1 Простой Комментировать
Пригласить эксперта
Ответы на вопрос 2
Melkij
@Melkij
PostgreSQL DBA
Например,
insert into order_product_link (order_id, product_id) select 1, i from unnest(array[1,4,7,86]) as i;

Как передать массив из go в массив postgresql - не подскажу. Уточняйте в используемой библиотеке go.

Или copy from stdin и шлёте столько строк в copy сколько надо.
Ответ написан
Комментировать
Shark13
@Shark13
Описание пакетной вставки без конкатенации есть в документации драйвера постгреса с примером
https://godoc.org/github.com/lib/pq#hdr-Bulk_imports

Из плюсов то, что это самый быстрый способ вставки пакета данных в постгрес из кода, быстрее чем import
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы