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?
Bitte vermeiden helfen. – mauris
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. –
@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