2016-10-26 9 views
2

Excel 클라우드 용 In Iniveive Control을 사용하여 API를 통해 Freshdesk의 기존 문의를 업데이트하고 싶습니다. Invantive Control은 전자 메일 주소와 전화가 고유해야하는 유효성 검사 오류를 발생시킵니다 (Validation failed duplicate_value: email. It should be a unique value).SQL을 사용하여 Freshdesk에 연락처를 삽입/업데이트 할 때 오류가 발생했습니다.

Invantive Control의 SQL이 CREATE 또는 PUT 명령으로 변환되는지 여부는 명확하지 않습니다. PUT의 경우 이미 존재하는 연락처를 업데이트 할 수 있어야합니다.

내 SQL 문 :

insert into [email protected] 
(name 
, address 
, phone 
, email 
) 
select deliveryaccountname 
,  fulladdress 
,  phone 
,  email 
from [email protected] 
+1

은 무엇 문 당신은 연락처를 업데이트하는 데 사용할 수 있습니까? –

+0

다음 문을 사용 : 연락처에 삽입 @ freshdesk FreshdeskTickets @에서 (이름 , 주소 , 전화 , 이메일 ) 선택 deliveryaccountname , fulladdress , 전화 , 이메일 이 –

+0

@a_horse_with_no_name inmemorystorage 그는 사용 [Invantive SQL] (http://www.invantive.com/products/invantive-sql)을 SQL 엔진으로 사용하는 [Freshdesk API] (https://freshdesk.com/api) SQL 엔진은 SQL 문을 API 호출로 변환합니다. –

답변

1

insert 기존 수정하지 않습니다는 contacts 테이블에 새 행을 만듭니다. 이미 Freshdesk 인스턴스에있는 연락처를 만들려고하고있는 것 같습니다.

나는 다음을 제안합니다 :

  • 는 사용자의 이메일 주소를 기반으로 표를 삽입합니다. 이상하게 보이지만, Freshdesk API가 해당 사용자의 티켓을 만들기 전에 연락처가 있는지 여부를 실제로 확인하기 때문에 가능합니다.
  • 그런 다음 update 기존 연락처. 업데이트 할 필요가없는 연락처를 필터링합니다. minus으로 무엇을 할 수 있습니다. 사용의 용이성을 위해 나는에 업데이트를 저장하는 새로운 임시 테이블을 만드는 것이 같이

:.

create table [email protected] 
as 
select distinct deliveryaccountname 
,  fulladdress 
,  phone 
,  email 
from [email protected] 
minus 
select name 
,  address 
,  phone 
,  email 
from [email protected] 

다음 업데이트합니다 (from 구문은 공공 릴리스에서 아직 사용할 수없는 점에 유의를) :

update [email protected] cfd 
set cfd.name = cto.name 
,  cfd.address = cto.address 
,  cfd.phone = cto.phone 
from [email protected] cto 
where cto.email = cfd.email 

임시 해결책은 아직없는 연락처 만 삽입하는 것입니다. minus는 다음과 같이 너무 contacts에 삽입을 위해 일해야합니다

insert into [email protected] 
(name 
, address 
, phone 
, email 
) 
select deliveryaccountname 
,  fulladdress 
,  phone 
,  email 
from [email protected] 
minus 
select name 
,  address 
,  phone 
,  email 
from [email protected] 
+1

마이너스가있는 마지막 구문은 이름, 주소, 전화 및 전자 메일의 튜플이 올바른 조합 일 때만 작동한다는 점에 유의하십시오. 이 경우 주소가 다르면 select의 첫 번째 부분에서 행이 제거되지 않습니다. '이메일을 사용하지 않습니다 ([email protected]@ freshdesk에서 이메일 선택')의 사용을 고려할 수 있습니다. –