【发布时间】:2021-05-08 05:00:22
【问题描述】:
因此,我正在尝试使用变量构建一个突变,用于将“人员”的记录及其地址、电子邮件、电话信息插入/更新到多个表中。
mutation insertPerson ($address: [adr_insert_input!]!, $emails: [emails_insert_input!]!) {
insert_info(objects: [{
f_name: "User1",
l_name: "Test"
address: {
data: $address,
on_conflict: {
constraint: person_id_pk,
update_column: [add_text_line1, zip_code]
}
},
emails: {
data: $emails,
on_conflict: {
constraint: person_id_pk,
update_column: [email_text]
}
}
}], on_conflict: {
constraints: person_pk,
update_columns: [f_name, l_name]
}) {
affected_rows
}
}
我的变量设置如下...
{
"address": [{
"add_text_line1": "123 Main Street",
"zip_code": 50501
}],
"emails": [{
"email_text": "FirstLastName@email.com"
}]
}
这工作符合我的预期(电子邮件数组中也有多个值),但我还需要将 f_name 和 l_name 值(整个 Person 对象)移动到一个变量中。我如何做到这一点?
我以这种方式尝试了以下突变,但这导致两个单独的插入和空值被传递...
mutation insertPerson ($person: person_insert_input!, $address: [adr_insert_input!]!){
insertData(objects: [
$person,
{
address: { data: $address }
}
]) { affected_rows }
}
这导致了两个单独的插入...第一个人的地址为空,然后人的地址为空。
如何实现第一个突变的结果,同时使用 Person Info 作为变量的一部分不将其硬编码到查询本身中?
谢谢!
【问题讨论】: