2016-07-26 3 views
0

MULE ESB 3.7 커뮤니티 에디션, MYSQL DB 커넥터, 작동 : 삽입, 유형 : 매개 변수 Anypoint 스튜디오 : 버전 : 5.4.0MULE : 중복의 UPDATE ON MYSQL 커넥터의 INSERT

MySQL의 쿼리 :

INSERT INTO TABLE1 (VAR1,VAR2) VALUES (2,1) ON DUPLICATE KEY UPDATE VAR1= 2, VAR2 = 1; 

VAR1은 테이블의 고유 키입니다. 기본 키가 아닙니다.

문제 : 위 쿼리는 MySQL Workbech에서 완벽하게 작동합니다. Mule에서는 데이터에 VAR1에 중복 값이없는 한 모두 작동합니다. 47 : 32,538 [프로젝트 1] .HTTP_Listener_Configuration.worker.01] org.mule 데이터에 대한 중복 VAR1 값이 있다면, 그때 다음 오류

ERROR 2016년 7월 26일 13 온다 .exception.CatchMessagingExceptionStrategy :

메시지 : 중복 항목을 '1' 'VAR1_KEY_UNIQUE' (com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException) 키. 메시지 페이로드 유형 인 :의 LinkedHashMap 유형 : org.mule.api.MessagingException 코드 : MULE_ERROR - 2의 JavaDoc : http://www.mulesoft.org/docs/site/current3/apidocs/org/mule/api/MessagingException.html 페이로드 : {VAR1 = 55, VAR2는 = 97} SQL 코드 : 1062 SQL 상태 : 23000

예외 스택은 다음과 같습니다 1. 중복 항목을 '1'키 'VAR1_UNIQUE'(SQL 코드 : 1062, SQL 주 : + 23000) (com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException) sun.reflect. NativeConstructorAccessorImpl : -2 (null) 2. 중복 항목 키 'VAR1_KEY_UNIQUE' (1) (com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException). 메시지 페이로드 유형 인 :의 LinkedHashMap (org.mule.api.MessagingException) org.mule.module.db.internal.processor.AbstractDbMessageProcessor : 93 (http://www.mulesoft.org/docs/site/current3/apidocs/org/mule/api/MessagingException.html)

질문 방법 : Mule Anypoint Studio MySQL 커넥터에서 INSERT ... ON DUPLICATE KEY UPDATE 쿼리를 사용할 수 있습니까?

+0

불필요한 굵은 대문자/피하십시오 데 도움이 귀하의 게시물 더 읽을 수 있도록 적절한 서식을 사용할 수 있습니다. – mauris

+0

이 오류는 이미 테이블에 기존 기본 키 값이 있음을 나타냅니다. 코드를 확인하고 기본 키 필드에 레코드를 삽입하는 등의 작업을하지 마십시오. –

+0

@reds - VAR1은 고유 키입니다. 기본 키가 아닙니다. 비즈니스 로직에 따라 경우에 따라 삽입하거나 업데이트해야합니다. 위에 주어진 쿼리는 workbench를 통해 사용할 때 작동하지만 CE 37을 사용하여 Mule (Anypoint Studio)을 통해 처리 할 때 오류가 발생합니다. 무엇이 오류의 원인인지 확신 할 수 없습니다. 그러므로 포스트. – Raj

답변