Graphql - 有没有办法同时插入两个表,但第二个表依赖于第一个表的返回?

ros*_*mar 3 javascript mutation graphql hasura

我是graphql的新手,我遇到了这个问题,不知道如何解决。

例如我有两个表:book 和 book_author;

book 有 book_id 和 name book_author 有 book_author_id、book_id、author_name

这两个表需要在单个请求中插入值,但 book_author 表需要 book_id ,它从它自己的 book 表中生成。

有人可以帮我弄这个吗?非常感谢帮助。

预期结果是在调用 post 请求或插入时。

例如。系统生成的 book_id bk123,表 book_author 中的 book_id 也应该相同。

小智 6

这是可能的 - 重要的文档在这里:https : //docs.hasura.io/1.0/graphql/manual/mutations/multiple-mutations.html#insert-an-object-and-a-nested-object-in-相同的突变

mutation {
  insert_book_author(objects: {book: {data: {name: "New Book"}}, author_name: "Sarah"}) {
    affected_rows
    returning {
      book_author_id
      book {
        book_id
        name
      }
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

请注意如何在嵌套的 book 对象中未指定 id。Hasura 将在插入时自动填写。

添加book表格

添加一个book_author表,外键为book

book和之间添加对象关系book_author

使用嵌套对象运行突变