【发布时间】:2021-09-08 06:19:17
【问题描述】:
我有这个查询,其中messageTags 是messages 和tags 之间的多对多关系的连接表
messageTagsByMessageId {
__id
edges {
node {
tagId
tagByTagId {
id
name
}
}
}
}
我想运行 deleteTag 突变,并使用 Relay 的 @deleteEdge 自动更新连接。问题是突变返回id,而不是tagId 或tagByTagId.id:
我试着开箱即用:
mutation TagDeleteMutation($input:DeleteTagInput!, $connections: [ID!]!) {
deleteTag(input: $input) {
tag {
id @deleteEdge(connections: $connections)
}
}
}
我还尝试添加开箱即用的有效负载:
mutation TagDeleteMutation($input:DeleteTagInput!, $connections: [ID!]!) {
deleteTag(input: $input) {
tag {
id @deleteEdge(connections: $connections)
}
messageTag {
tagId @deleteEdge(connections: $connections)
}
}
}
运气不好。现在我正在研究 graphile 用来构建突变 API 的 Postgres 函数。比如:
CREATE FUNCTION public.delete_tag(tag_id Int)
RETURNS *
AS $$
DELETE FROM public.tag
WHERE id=tag_id
RETURNING id, user_id, name, category_id, id as tag_id;
$$ LANGUAGE sql VOLATILE STRICT;
【问题讨论】:
标签: postgresql graphql relay postgraphile