我有这个查询,哪里是和messageTags
之间的多对多关系的连接表messages
tags
messageTagsByMessageId {
__id
edges {
node {
tagId
tagByTagId {
id
name
}
}
}
}
我想运行一个deleteTag
突变,并使用中继@deleteEdge
自动更新连接。问题是突变返回id
,而不是tagId
or 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;