Prisma ORM实现了update或create upsert()方法和一组批量请求。但是没有.upsertMany()这样的东西,即批量“创建或更新现有记录”。使用Prisma ORM实现这种方法的最佳方式是什么?
upsert()
.upsertMany()
nuypyhwy1#
Prisma本身不支持upsertMany。有一个Feature Request来提供upsertMany方法。到目前为止,最好的方法是循环数据,并在循环中调用upsert沿着使用$transaction。示例:
upsertMany
upsert
$transaction
const collection = await prisma.$transaction( userData.map(cur => prisma.cur.upsert({ where: { id: cur.id }, update: {}, create: { id: cur.id }, }) ) )
这里有一个$transaction API的参考,应该会有帮助。
zbwhf8kr2#
我确实想知道,如果不使用$transaction API并在数据上循环,那么检查DB是否应该插入或更新每条记录,然后使用createMany沿着updateMany,这会更有性能。
createMany
updateMany
2条答案
按热度按时间nuypyhwy1#
Prisma本身不支持
upsertMany
。有一个Feature Request来提供
upsertMany
方法。到目前为止,最好的方法是循环数据,并在循环中调用
upsert
沿着使用$transaction
。示例:
这里有一个$transaction API的参考,应该会有帮助。
zbwhf8kr2#
我确实想知道,如果不使用
$transaction
API并在数据上循环,那么检查DB是否应该插入或更新每条记录,然后使用createMany
沿着updateMany
,这会更有性能。