如何更新多对一关系?

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.

我想删除关于断开连接的评论,但不知道如何。

所以我有两个问题:

  1. 如何在断开连接时删除记录
  2. Prisma 是否会自动检测删除的评论,因为它们不再出现在文章评论数组中?如果没有,检测此问题的最佳做法是什么?

您可以先删除评论:

prisma.comment.deleteMany({ where: { articleId: id } })

由于 ON DELETE CASCADE,它会自动删除文章中的所有评论

我假设您使用的是 mysql 或 postgres