Announcement

Collapse
No announcement yet.

On duplicate Key update

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • On duplicate Key update

    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

  • #2
    Hab den Fehler gefunden: Die Synthax ist nicht
    CASE version WHEN ....
    sondern:
    CASE WHEN ....

    So funktioniert jetzt alles.

    LG Stefan

    Comment

    Working...
    X