更新时重新创建相关记录

Re-create related records on update

我想在更新时重新创建一些相关记录,像这样:

db.post.update({
  where: { id: 1 },
  data: {
    title: "The first post",
    comments: {
      set: [{ content: "foo"}, { content: "bar" }],
    },
  },
})

不幸的是,这是不可能的,因为 set 只允许引用现有评论(通过使用 id)。那么在更新期间是否有另一种方法可以删除所有这些相关评论并在一个事务中从头开始重新创建它们(并且可能在嵌套写入时)?

我假设你指的是 Prisma ORM

为了重新创建相关记录(即删除以前的相关记录并添加新的记录),您需要使用 deleteMany along with create,如下所示:

db.post.update({
  where: { id: 1 },
  data: {
    title: "The first post",
    comments: {
      // delete existing relations
      'deleteMany': {},
      // create new relations
      'create': [
         ......your new data here....
      ],
    },
  },
})

请参阅 this 对 github 的评论以获取 update 示例。