[英]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.