Как обновить значения вложенных таблиц в Hasura GraphQL? - PullRequest
0 голосов
/ 18 июня 2020

хотел спросить, можно ли вставлять вложенные объекты? например, если у меня есть таблица «Пользователи» и таблица «Студенты», и я вставляю нового пользователя (с взятым идентификатором), я хочу обновить все поля (используя on_conflict и update_columns), включая поля в Стол "Студент". В основном замените все поля пользователя, кроме первичного ключа.

mutation($UsersData: [core_users_insert_input!]!) {
    insert_core_users(
      objects: $UsersData
      on_conflict: {
        constraint: core_users_id_unique
        update_columns: [first_name, last_name, gender]
      }
    ) {
      affected_rows
    }
  }

Массив update_column должен включать поля из таблицы «Студенты», но я не могу это понять.

1 Ответ

0 голосов
/ 19 июня 2020

Возможно, соответствующая документация находится здесь: https://hasura.io/docs/1.0/graphql/manual/mutations/upsert.html#upsert -in-nested-mutations

Можно использовать ключ on_conflict на любом уровне (верхнем или вложенном ), где вы хотите разрешить обновление существующей записи.

mutation upsert_author_article {
  insert_author(
    objects: [
      {
        name: "John",
        articles: {
          data: [
            {
              title: "Article 3",
              content: "Article 3 content"
            }
          ],
          on_conflict: {
            constraint: article_title_key,
            update_columns: [content]
          }
        }
      }
    ]
  ) {
    affected_rows
  }
}
...