我想使用Excel全部的Invantive Control通过API更新Freshdesk中的现有联系人。
Invantive Control会引发验证错误,即电子邮件地址和电话应该是唯一的:Validation failed duplicate_value: email. It should be a unique value
。
目前尚不清楚Invantive Control的SQL是否转换为CREATE
或PUT
命令。如果是PUT
,则应该可以更新已存在的联系人。
我的SQL声明:
insert into contacts@freshdesk
( name
, address
, phone
, email
)
select deliveryaccountname
, fulladdress
, phone
, email
from FreshdeskTickets@inmemorystorage
答案 0 :(得分:1)
insert
语句在contacts
表中创建新行,它不会修改现有行。您似乎正在尝试创建Freshdesk实例中已存在的联系人。
我建议如下:
update
现有联系人,过滤掉不需要更新的联系人。您可以使用minus
执行操作。为了便于使用,我将创建一个新的临时表来存储更新。像这样:
create table contacts_to_update@inmemorystorage
as
select distinct deliveryaccountname
, fulladdress
, phone
, email
from FreshdeskTickets@inmemorystorage
minus
select name
, address
, phone
, email
from contacts@freshdesk
然后更新(请注意,from
语法在公开发布中尚未提供):
update contacts@freshdesk cfd
set cfd.name = cto.name
, cfd.address = cto.address
, cfd.phone = cto.phone
from contacts_to_update@inmemorystorage cto
where cto.email = cfd.email
临时解决方案是仅插入那些尚不存在的联系人。 minus
也适用于contacts
上的插入,如下所示:
insert into contacts@freshdesk
( name
, address
, phone
, email
)
select deliveryaccountname
, fulladdress
, phone
, email
from FreshdeskTickets@inmemorystorage
minus
select name
, address
, phone
, email
from contacts@freshdesk