2016-07-26 29 views
0

MULE ESB 3.7社区版,MySQL数据库连接器,操作方式:插入,类型:参数Anypoint工作室:版本:5.4.0MULE:MYSQL连接器插头对重复UPDATE

MySQL查询:

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

VAR1是表格的唯一键。 这不是主键。

问题:上述查询在MySQL Workbech中工作得非常好。在Mule中,只要数据中没有重复值VAR1,所有工作都会正常进行。但是,如果存在用于在数据VAR1一个重复的值,则以下错误出现

ERROR 2016年7月26日13:47:32538 [[PROJECT1] .HTTP_Listener_Configuration.worker.01] org.mule .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' (com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException),重复条目 '1'。 消息有效载荷的类型为: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

问题:如何使INSERT ... ON DUPLICATE KEY UPDATE查询从Mule Anypoint Studio MySQL连接器工作?

+0

请避免不必要的加粗/大写和使用适当的格式,使您的文章更具可读性。 – mauris

+0

此错误表示您的表中已有一个现有的主键值。检查你的代码,避免像在主键字段中插入记录那样工作。 –

+0

@reds - VAR1是唯一键。这不是主要关键。根据业务逻辑,需要根据具体情况插入或更新。上面给出的查询在通过工作台使用时有效,但在通过Mule(Anypoint Studio)使用CE 37进行处理时发生错误。我不确定是什么导致了错误。因此,职位。 – Raj

回答