【问题标题】:Re-create related records on update更新时重新创建相关记录
【发布时间】:2021-10-07 02:24:20
【问题描述】:

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

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

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

【问题讨论】:

    标签: javascript orm prisma prisma2


    【解决方案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....
          ],
        },
      },
    })
    

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

    【讨论】:

    • 酷,我想过这个,但文档中的任何地方都没有记录。我将打开一个问题以将其添加到文档中或引入替换关键字,如您的链接问题中提到的那样。感谢您的帮助!
    猜你喜欢
    • 2016-05-17
    • 1970-01-01
    • 2013-09-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多