更新时重新创建相关记录

时间:2021-08-01 10:44:40

标签: javascript orm prisma prisma2

我想在更新时重新创建一些相关记录,如下所示:

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

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

1 个答案:

答案 0 :(得分:1)

我假设您指的是 Prisma ORM

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

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

有关 update 示例,请参阅 github 上的 this 评论。

相关问题