.upsertMany() 在 Prisma ORM 中是如何实现的?

Art*_*ash 7 javascript orm node.js typescript prisma

Prisma ORM有一个更新或创建upsert()方法的实现和一组 批量请求
但是没有这样的东西.upsertMany(),即批量“创建或更新现有记录”。

使用Prisma ORM实现这种方法的最佳方法是什么?

Nur*_*ani 12

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 },
      })
    )
  )
Run Code Online (Sandbox Code Playgroud)

这是对$transaction API 的参考,应该会有所帮助。

  • 也许我错过了一些技术障碍,为什么没有更好的方法来做到这一点?但是,如果我想使用他们自己的种子系统更新插入 1000 万条演示数据记录,我实际上必须对数据库发起 1000 万个单独的查询? (2认同)