我是 graphql hasura 的新手,我遇到了如何更新一个表中的多行的问题,因为通常我只更新每个表的一行。
我想以动态方式更新多行
例如,我有现有的行数据。
id: 1, name: 'rosie', age: 12
id: 2, name: 'jane', age: 20
id: 3, name: 'rafaela', age: 25
我只想编辑 2 行。
id: 1, name: 'rosie update', age: 12
id: 2, name: 'jane update', age: 21
我有一系列用户。
可以是 1 个或 1 个以上的用户将被更新。
const users = [
{id: 1, name: 'rosie update', age: 12}.
{id: 2, name: 'jane update', age: 21}
];
mutation update_article {
update_user(
where: {id: {_eq: users[0].id}},
_set: {
name: users[0].name,
age: users[0].age
}
) {
affected_rows
}
}
预期输出应该是:
想要以动态方式而不是静态方式拥有突变代码。
id: 1, name: 'rosie update', age: 12
id: 2, name: 'jane update', age: 21
id: 3, name: 'rafaela', age: 25
最佳答案
阅读文档 mutation ,您可以使用 insert
而不是 update
可以处理管理冲突行为的多个对象。
在您的示例中,可以通过以下方式完成突变:
mutation update_article {
insert_user(objects: [
{id: 1, name: "rosie update", age: 12},
{id: 2, name: "jane update", age: 21}
],
on_conflict: {
constraint: user_id_key,
update_columns: [name, age]
}
) {
affected_rows
}
}
如
id
值已经存在,它将更新字段 name
和 age
.
关于graphql - 如何使用Graphql动态更新一张表中的多行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57820410/