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

Graphql - Is there a way how to insert two tables at the same time, but the second table is dependent on the return of from the first table?

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

例如我有两个 table:书和 book_author;

本书有 book_id 和名字 book_author 有 book_author_id、book_id、author_name

需要在单个请求中插入两个 table 值,但是 book_author table 需要 book_id 书中的 table它自己生成。

有人可以帮我解决这个问题吗?非常感谢帮助。

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

例如。系统生成book_idbk123,tablebook_author中的book_id应该也是一样的

有可能 - 重要文档在这里: https://hasura.io/docs/latest/graphql/core/databases/postgres/mutations/multiple-mutations/#insert-an-object-and-a-nested-object-in-the-same-mutation

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

注意在嵌套的图书对象中没有指定 id。 Hasura 将在插入时自动填写。

add a book table

add a book_author table, with foreign key to book

add an object relationship between book and book_author

run a mutation with nested objects