Heim  >  Fragen und Antworten  >  Hauptteil

So aktualisieren Sie mehrere Zeilen mit unterschiedlichen Daten in Prisma

Was ist der beste Weg, viele Datensätze mit unterschiedlichen Daten zu aktualisieren? Das ist es, was ich mache

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,
          });
        }

Ich könnte es aktualisieren, aber es würde lange dauern. Ich weiß transaction, aber ich weiß nicht, wie ich es verwenden soll.

P粉478445671P粉478445671299 Tage vor533

Antworte allen(1)Ich werde antworten

  • P粉354602955

    P粉3546029552023-12-26 09:37:44

    在 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,
              });
            }
    });

    Antwort
    0
  • StornierenAntwort