Hallo Leute,
ich habe ein Problem, dabei geht es um folgende Query:
INSERT INTO fahrt_mitfahrer (id,start,ziel,wait,mitfahrer_id,fahrt_id,version, del)
VALUES ('1','Mannheim','Erfurt','0','1','2','3','0') , ('2','Erfurt','Mannheim','0','1','6','3','0')
ON DUPLICATE KEY UPDATE id=
CASE version
WHEN version>VALUES(version)
THEN VALUES(version)
ELSE version
END
Die CASE-Anweisung endet bei mir immer im ELSE-Zweig oder wird nicht ausgeführt, jedenfalls habe ich nach ausführen der Anweisung immer die alten Werte in den Einträgen stehen, obwohl die Version bei beiden Einträgen größer ist, als die bereits vorhandene (beide Einträge sind bereits vorhanden). Gibt es vlt eine Möglichkeit, das Update nur unter einer Bedingung auszuführen, z.b. mittels eines if vor dem Update? damit könnte ich dann das gesamte Update von der Versionsüberprüfung abhängig machen. Gibt es so ein Konstrukt überhaupt?
Danke schonmal für eure Hilfe!
LG Stefan
ich habe ein Problem, dabei geht es um folgende Query:
INSERT INTO fahrt_mitfahrer (id,start,ziel,wait,mitfahrer_id,fahrt_id,version, del)
VALUES ('1','Mannheim','Erfurt','0','1','2','3','0') , ('2','Erfurt','Mannheim','0','1','6','3','0')
ON DUPLICATE KEY UPDATE id=
CASE version
WHEN version>VALUES(version)
THEN VALUES(version)
ELSE version
END
Die CASE-Anweisung endet bei mir immer im ELSE-Zweig oder wird nicht ausgeführt, jedenfalls habe ich nach ausführen der Anweisung immer die alten Werte in den Einträgen stehen, obwohl die Version bei beiden Einträgen größer ist, als die bereits vorhandene (beide Einträge sind bereits vorhanden). Gibt es vlt eine Möglichkeit, das Update nur unter einer Bedingung auszuführen, z.b. mittels eines if vor dem Update? damit könnte ich dann das gesamte Update von der Versionsüberprüfung abhängig machen. Gibt es so ein Konstrukt überhaupt?
Danke schonmal für eure Hilfe!
LG Stefan
Comment