有没有办法使用嵌套创建批量更新棱镜中的对象
Posted
技术标签:
【中文标题】有没有办法使用嵌套创建批量更新棱镜中的对象【英文标题】:Is there a way to batch update objects in prisma using a nested create 【发布时间】:2019-08-28 21:30:13 【问题描述】:prisma v1.28.3,
nodeJs: v10.15.3
假设我们有以下棱镜定义
type ScheduledCharge
processedAt: DateTime!
transactions: [Transaction!]!
type Transaction
id: ID! @unique
amount: number
现在,鉴于我们有一个 ScheduledCharge
的集合,有没有办法通过嵌套对象创建批量更新 ScheduledCharge
,理想情况下是这样的
prisma.updateManyScheduledCharges(
where:
id_in: [1, 2, 3]
,
data:
transactions:
create: [
amount,
]
,
)
但是上面提到的不是由 prisma 客户端生成的,但是我可以循环通过预定的收费并执行以下操作
for (const id: scheduledChargeId of scheduledCharges)
prisma.updateScheduledCharge(
where:
id: scheduledChargeId
,
data:
transactions:
connect: [
id: transactionId,
]
,
)
如果我执行上述操作,是否有人知道我是否可以将 mysql 事务与 prisma 客户端一起使用并在任何更新失败时进行回滚?
【问题讨论】:
【参考方案1】:Prisma 客户端确实生成了id_in
过滤器:
话虽如此,我们的 prisma 有一个新规范,它将实现更好的批处理和事务功能。见:https://github.com/prisma/rfcs/blob/new-ts-client-rfc/text/0000-new-ts-client.md
【讨论】:
以上是关于有没有办法使用嵌套创建批量更新棱镜中的对象的主要内容,如果未能解决你的问题,请参考以下文章