100 записей за раз со связями, createMany связи не поддерживают а транзакции очень медленны, какой выход? Кроме как самому sql писать?
Что значит транзакции очень медленные? Почему не создать 100 записей А потом к ним 100 связей? По 1 это будет долго. 100% Тк время тратиться на установку соединения, перестройку индексов, мерж версий данных. Проще вставлять все пачкой, по возможности.
Если у меня есть 2 массива записей, как их связать одним запросом?
Постгрес
Тогда тут все просто - если в raw sql, то можно использовать CTE запрос Разбить на секции, все выполнить 1 запросом
Надо почитать, так то я фронт и в базах почти ничего не понимаю
Будет что-то типа такого 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
По поводу cte, эта таблица с айдишниками для конекта, она всегда есть в базе или постгрес её создаёт и удаляет каждый раз? И если она там всегда, когда я записал туда пачку айдишников, законектил их, их удалить или перезаписать, или как это происходит? Мне же они уже не нужны там
Это временные таблицы После выполнения они будут удалены
А как мне сопоставить эти две таблицы в базе? На то что записи в строгом порядке я полагаться не могу, а некоторые могут отсутствовать во второй таблице, перед добавлением в таблице прописать какой то uid и по нему законектить?
Обсуждают сегодня