【发布时间】: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