如何更新多对一关系?
How to update many-to-one relation?
我的架构如下所示
model Article {
id String @id
title String
isPublished Boolean @default(false)
comments Comment[]
}
model Comment {
id String @id
content String
articleId String
article Article @relation(fields: [articleId], references: [id])
}
我正在这样使用 upsert
prisma.article.upsert({
where: {id},
create: {// create code here},
update: {
comments: {createOrConnect: [{...}]}
}
})
但是删除评论时,这段代码不起作用。如我所见,代码没有任何 disconnect
.
我想删除关于断开连接的评论,但不知道如何。
所以我有两个问题:
- 如何在断开连接时删除记录
- Prisma 是否会自动检测删除的评论,因为它们不再出现在文章评论数组中?如果没有,检测此问题的最佳做法是什么?
您可以先删除评论:
prisma.comment.deleteMany({ where: { articleId: id } })
由于 ON DELETE CASCADE,它会自动删除文章中的所有评论
我假设您使用的是 mysql 或 postgres
我的架构如下所示
model Article {
id String @id
title String
isPublished Boolean @default(false)
comments Comment[]
}
model Comment {
id String @id
content String
articleId String
article Article @relation(fields: [articleId], references: [id])
}
我正在这样使用 upsert
prisma.article.upsert({
where: {id},
create: {// create code here},
update: {
comments: {createOrConnect: [{...}]}
}
})
但是删除评论时,这段代码不起作用。如我所见,代码没有任何 disconnect
.
我想删除关于断开连接的评论,但不知道如何。
所以我有两个问题:
- 如何在断开连接时删除记录
- Prisma 是否会自动检测删除的评论,因为它们不再出现在文章评论数组中?如果没有,检测此问题的最佳做法是什么?
您可以先删除评论:
prisma.comment.deleteMany({ where: { articleId: id } })
由于 ON DELETE CASCADE,它会自动删除文章中的所有评论
我假设您使用的是 mysql 或 postgres