reactjs Prisma如何使用不同的数据更新多行

ozxc1zmp  于 2022-12-22  发布在  React
关注(0)|答案(1)|浏览(155)

用不同的数据更新许多记录的最佳方法是什么?我是这样做的

const updateBody = JSON.parse(req.body);

      try {
        for (let object of updateBody) {
          await prisma.comissions.upsert({
            where: {
              producer: object.producer,
            },
            update: {
              rate: object.rate,
            },
            create: object,
          });
        }

我可以更新它,但是它花了很长时间,我知道transaction,但是我不知道如何使用它。

dgtucam1

dgtucam11#

在Prisma中,事务查询有两种使用方式。

    • 顺序操作:**传递一个Prisma客户端查询数组,以便在事务内顺序执行。
    • 交互式事务:**传递一个函数,该函数可以包含用户代码,包括Prisma客户端查询、非Prisma代码和其他要在事务中执行的控制流。

在我们的例子中,我们应该使用交互式事务,因为它包含用户代码。要在Prisma事务中使用回调函数,我们需要向Prisma.schema文件添加预览功能

generator client {
  provider        = "prisma-client-js"
  previewFeatures = ["interactiveTransactions"]
}
prisma.$transaction(async(prisma) => {
  try {
        for (let object of updateBody) {
          await prisma.comissions.upsert({
            where: {
              producer: object.producer,
            },
            update: {
              rate: object.rate,
            },
            create: object,
          });
        }
});

相关问题