在自动化任务中,我正在同一实体的一组对象中进行更新,并且我需要保留该更改。例如
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 的 $transaction API。它有两种用途:
在我的例子中,我像这样迭代创建的对象数组和承诺数组。
arrayOfObjects.forEach( (object) => {
array.push(prisma.Object.update(logic));
})
prisma.$transaction(array);