cari

Rumah  >  Soal Jawab  >  teks badan

Cara mengemas kini berbilang baris dengan data berbeza dalam Prisma

Apakah cara terbaik untuk mengemas kini banyak rekod dengan data yang berbeza? Inilah yang saya lakukan

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

Saya boleh mengemas kininya tetapi ia akan mengambil masa yang lama untuk melakukannya. Saya tahu transaction, tetapi saya tidak tahu cara menggunakannya.

P粉478445671P粉478445671458 hari yang lalu774

membalas semua(1)saya akan balas

  • P粉354602955

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

    Terdapat dua cara untuk menggunakan pertanyaan transaksi dalam Prisma.

    Operasi berurutan: Luluskan pelbagai pertanyaan pelanggan Prisma untuk dilaksanakan secara berurutan dalam transaksi.

    Transaksi interaktif: Luluskan fungsi yang boleh mengandungi kod pengguna, termasuk pertanyaan pelanggan Prisma, kod bukan Prisma dan aliran kawalan lain untuk dilaksanakan dalam transaksi.

    Dalam kes kami, kami harus menggunakan transaksi interaktif kerana ia mengandungi kod pengguna, untuk menggunakan fungsi panggil balik dalam transaksi Prisma kami perlu menambah fungsi pratonton pada fail 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,
              });
            }
    });

    balas
    0
  • Batalbalas