209 похожих чатов

Если кто юзает призму, столкнулся с тем что надо создать

100 записей за раз со связями, createMany связи не поддерживают а транзакции очень медленны, какой выход? Кроме как самому sql писать?

12 ответов

21 просмотр

Что значит транзакции очень медленные? Почему не создать 100 записей А потом к ним 100 связей? По 1 это будет долго. 100% Тк время тратиться на установку соединения, перестройку индексов, мерж версий данных. Проще вставлять все пачкой, по возможности.

Vitalii- Автор вопроса
Алексей Шашенков
Что значит транзакции очень медленные? Почему не ...

Если у меня есть 2 массива записей, как их связать одним запросом?

Vitalii- Автор вопроса
Vitalii
Постгрес

Тогда тут все просто - если в raw sql, то можно использовать CTE запрос Разбить на секции, все выполнить 1 запросом

Vitalii- Автор вопроса
Алексей Шашенков
Тогда тут все просто - если в raw sql, то можно ис...

Надо почитать, так то я фронт и в базах почти ничего не понимаю

Vitalii
Надо почитать, так то я фронт и в базах почти ниче...

Будет что-то типа такого sql with values_1 as ( select * from ( values('dd',11), ('ee', 22) -- тут готовим 1 массив ) as i1 (city, ex_id) ), values_2 as ( select * from ( values ('gg',11), ('hh', 22) ) as i1 (region, ex_id) -- тут готовим 2 массив ) -- ... тут ниже вставки, можно вставить 1-й массив с retutning(*) и получить id -- во вторй вставке сделать join с вставленныйми id из первого массива select * from values_1 v1 -- тут пример работы и объеденения join values_2 v2 on v1.ex_id = v2.ex_id

Vitalii- Автор вопроса
Vitalii
Спасибо)

По поводу cte, эта таблица с айдишниками для конекта, она всегда есть в базе или постгрес её создаёт и удаляет каждый раз? И если она там всегда, когда я записал туда пачку айдишников, законектил их, их удалить или перезаписать, или как это происходит? Мне же они уже не нужны там

Vitalii
По поводу cte, эта таблица с айдишниками для конек...

Это временные таблицы После выполнения они будут удалены

Vitalii- Автор вопроса
Алексей Шашенков
Это временные таблицы После выполнения они будут ...

А как мне сопоставить эти две таблицы в базе? На то что записи в строгом порядке я полагаться не могу, а некоторые могут отсутствовать во второй таблице, перед добавлением в таблице прописать какой то uid и по нему законектить?

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

Обсуждают сегодня

Карта сайта