更新 prisma 中的多个文件

问题描述 投票:0回答:1

在自动化任务中,我正在同一实体的一组对象中进行更新,并且我需要保留该更改。例如

arrayOfObjects[
Objetc A:
 id: 1
 name: 'Test'
 lastName: 'Other'
,
Object B:
 id: 2
 name: 'Pro'
 lastName: 'Top']

arrayOfId[1,2]

我尝试使用 updateMany 进行更新,但我认为这是不可能的。

prisma.Object.updateMany({
 where: {
   id: {
    in: arrayOfId
  }
 },
 data: arrayOfObjects
});

我能做什么。我尝试在数组循环中使用 prisma.Object.update,但出现以下错误。

Operations timed out after `N/A`. Context: The database failed to respond to a query within the configured timeout
prisma
1个回答
0
投票

我在相关帖子这里找到了解决方案。

一种方法是使用 prisma 的 $transaction API。它有两种用途:

  • 使用 PrismaPromise 类型的承诺数组,然后执行交易:prisma.$transaction(array)。
  • 带有回调:prisma.$transaction(async (p) => function)。

在我的例子中,我像这样迭代创建的对象数组和承诺数组。

arrayOfObjects.forEach( (object) => {
   array.push(prisma.Object.update(logic));
})
prisma.$transaction(array);
© www.soinside.com 2019 - 2024. All rights reserved.