【问题标题】:Structuring a hasura-graphql insert mutation query for an object with a one-to-many foreign key relationship为具有一对多外键关系的对象构建 hasura-graphql 插入突变查询
【发布时间】:2020-03-13 07:40:42
【问题描述】:

我在构建将一行插入到具有多个外键关系的表中的 hasura graphql 查询时遇到问题。

我有三个表,“用户”、“组”和“用户组”。 “UserGroups”表在 groupId 和 userId 列上有外键关系。我使用 Hasura 的 UI 来跟踪它根据两个外键建议的关系。

我可以通过直接连接到数据库来创建新的用户组,但是当我尝试通过 graphql 查询创建一个新的用户组时,我得到了一个外键违规响应。

{
  "errors": [
    {
      "extensions": {
        "path": "$.selectionSet.insert_user_group.args.objects",
        "code": "constraint-violation"
      },
      "message": "Foreign key violation. insert or update on table \"user_group\" violates foreign key constraint \"user_group_userId_fkey\""
    }
  ]
}

这是我尝试使用的突变:

mutation insert_user_group {
  insert_user_group(objects: [{
    userId: 1,
    groupId: 1,
  }]) {
    affected_rows
  }
}

我只能找到有关查询具有一对多关系的表的文档,但没有显示如何构造插入突变。

【问题讨论】:

  • 外键约束违规意味着Users 表上不存在值为1 的userId。在进行上述突变之前,您确定该行存在于Users 表中吗?
  • 是的,我可以使用相同的值并在使用数据选项卡时成功插入行。只有在使用 GraphIQL 视图时才会发生错误。

标签: postgresql hasura


【解决方案1】:

原来它失败了,因为我没有在查询中使用字符串来获取 id 值。它们是 BigInt 列,但查询需要字符串才能使插入正常工作。

感谢@praveenweb 的评论。

【讨论】:

    猜你喜欢
    • 2023-03-08
    • 2020-09-06
    • 2019-04-22
    • 2021-05-08
    • 2018-10-02
    • 2019-01-31
    • 2020-11-28
    • 2020-07-13
    • 1970-01-01
    相关资源
    最近更新 更多