Как реализовано .upsertMany() в Prisma ORM?

В Prisma ORM есть реализация команды обновить или создать запись upsert(), а также группа bulk-запросов,
но среди них нет такого как .upsertMany(), то есть массовое "создание или обновление существующих записей".

Как лучше реализовать такой метод, используя Prisma ORM?


Ответы (1 шт):

Автор решения: Артём Ионаш

На данный момент Prisma не имеет стандартной реализации .upsertMany(),
(хотя создан запрос на реализацию метода .upsertMany()).

На данный момент лучшим подходом будет вызов массива запросов .upsert() обёрнутых в $transaction().

Пример:

const collection = await prisma.$transaction(
  userData.map(cur =>
    prisma.cur.upsert({
      where: { id: cur.id },
      update: {},
      create: { id: cur.id },
    })
  )
)

Здесь есть информация о API $transaction() , которая также может быть полезной.

→ Ссылка