Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How is .upsertMany() implemented in Prisma ORM?

Prisma ORM has an implementation of the update or create upsert() method and a group of bulk requests,
but there is no such thing as .upsertMany(), i.e. bulk "create or update existing records".

What is the best way to implement such a method using Prisma ORM?

like image 783
Artyom Ionash Avatar asked Mar 26 '26 11:03

Artyom Ionash


1 Answers

Prisma doesn't natively support upsertMany.

There is a Feature Request to provide the upsertMany method.

As of now the best approach would be to loop over the data and invoke upsert in the loop along with using $transaction.

Example:

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

Here's a reference to $transaction API which should be helpful.

like image 134
Nurul Sundarani Avatar answered Mar 28 '26 00:03

Nurul Sundarani