MySQL Trigger

  • Hallo Community,


    vielleicht schaut rein zufällig ein wissender in diesem Bereich in diesen Thread, man weiß ja nie :D
    Es ist folgendes, ich möchte über einen Trigger einer Tabelle ein Update der Tabelle auslösen, der aber nur den einen Datensatz betrift, der auch geupdatet wurde.
    Bisher habe ich folgendes trigger.PNG

    SQL
    UPDATE `User` SET `LastTimeUpdated` = CURRENT_TIMESTAMP


    Jetzt würde er mir ja eine Schleife generieren, die alle Datensatze updatet, genau das möchte ich aber nicht.
    Es soll nur der Datensatz geupdatet werden, welcher auch zu letzt geupdatet wurde.


    Die Frage ist nur WIE stell ich das genau an ?


    Mir würde spontan nur ein "Workaround" einfallen und zwar einfach eine extra Tabelle dafür anlegen, aber irgendwie halte ich das für unnütz, aber für die letzte Möglichkeit :D

    "Bevor ich mir Informationen aus der "Bild" hole,
    werde ich anfangen, Wahlergebnisse danach vorauszusagen,
    neben welchen Busch unsere Katze gepinkelt hat."

    Margarete Stokowski

  • SLaYz: Das würde für mich ja keinen Sinn machen, da der Datensatz auch einen uralten Timestamp hat.
    Nur den neusten Eintrag Updaten soll er ja nicht.


    Ich hab das Problem allerdings gelöst, eher gesagt ich war nur zu blöd richtig zu lesen -.-'
    Der Trigger wird für jede Zeile erstellt und nicht für jede Zeile ausgeführt, sondern nur für die, die auch geupdatet wird.
    Zudem musste ich den Query noch anpassen, sonst gibt's nen SQL Fehler


    Richtig wäre dieser Query:

    SQL
    SET NEW.LastTimeUpdated = CURRENT_TIMESTAMP;

    "Bevor ich mir Informationen aus der "Bild" hole,
    werde ich anfangen, Wahlergebnisse danach vorauszusagen,
    neben welchen Busch unsere Katze gepinkelt hat."

    Margarete Stokowski