繁体   English   中英

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

[英]Prisma how to update many rows with different data

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

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

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

顺序操作:传递一组 Prisma Client 查询以在事务内顺序执行。

交互式事务:传递一个函数,该函数可以包含用户代码,包括 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,
          });
        }
});

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM