2016-07-26 20 views
0

Mule ESB 3.7 Community Edition, MYSQL DB-Anschluss, Bedienung: Einfügen, Typ: Parameter AnyPoint Studio: Version: 5.4.0MULE: MYSQL CONNECTOR INSERT ON DUPLICATE UPDATE

MySQL Query:

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

VAR1 ist ein eindeutiger Schlüssel für die Tabelle. Es ist NICHT der Primärschlüssel.

Problem: Die obige Abfrage funktioniert perfekt von MySQL Workbech. In Mule funktioniert alles gut, solange keine doppelten Werte für VAR1 in den Daten vorhanden sind. Wenn es aber ein doppelter Wert für VAR1 in den Daten vorhanden ist, dann kommen folgende Fehler

ERROR 2016.07.26 13: 47: 32.538 [[project1] .HTTP_Listener_Configuration.worker.01] org.mule .exception.CatchMessagingExceptionStrategy:

Nachricht: doppelte Eintrag '1' für Schlüssel 'VAR1_KEY_UNIQUE' (com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException). Nachricht Nutzlast ist vom Typ: LinkedHashMap Typ: org.mule.api.MessagingException Code: MULE_ERROR - 2 JavaDoc: http://www.mulesoft.org/docs/site/current3/apidocs/org/mule/api/MessagingException.html Nutzlast: {VAR1 = 55, VAR2 = 97} SQL-Code: 1062 SQL-Status: 23000

Ausnahmestapel sind: 1. doppelte Eintrag '1' für die Taste 'VAR1_UNIQUE' (SQL Code: 1062, SQL-Zustand: + 23000) (com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException) sun.reflect. NativeConstructorAccessorImpl: -2 (null) 2. Doppeleintrag '1' für Schlüssel 'VAR1_KEY_UNIQUE' (com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException). Nachricht Nutzlast ist vom Typ: 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)

FRAGE: Wie Machen Sie die INSERT ... ON DUPLICATE KEY UPDATE Abfrage von Mule Anypoint Studio MySQL Connector?

+0

Bitte vermeiden helfen. – mauris

+0

Dieser Fehler besagt, dass Sie bereits einen Primärschlüsselwert in Ihrer Tabelle haben. Überprüfen Sie Ihren Code und vermeiden Sie das Arbeiten wie das Einfügen eines Datensatzes in das Primärschlüsselfeld. –

+0

@reds - VAR1 ist ein eindeutiger Schlüssel. Es ist nicht der Primärschlüssel. Je nach Geschäftslogik muss es eingefügt oder aktualisiert werden. Die obige Abfrage funktioniert, wenn ich sie über die Workbench verwende, gibt aber einen Fehler bei der Verarbeitung über Mule (Anypoint Studio) mit CE 37. Ich bin mir nicht sicher, was den Fehler verursacht. Daher der Beitrag. – Raj

Antwort

0

Wir können mit doppelten Schlüssel einfügen. Sie SQL Query Seite überprüfen, es könne Sie unnötigen bolding/Groß- und verwendet entsprechende Formatierung, um Ihren Beitrag lesbare

enter link description here

Verwandte Themen