Prisma如何用不同的数据更新多行
P粉478445671
P粉478445671 2023-12-25 13:03:44
0
1
612

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

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,但我不知道如何使用它。

P粉478445671
P粉478445671

全部回复(1)
P粉354602955

在 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,
          });
        }
});
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板