der henry: sql (mariadb) trigger

Beitrag lesen

Hallo,

ich suche schon seit Stunden nach meinem Fehler. Ich habe ein Initialisierungsscript für meine Datenbank, das ich um einen Trigger erweitern will.

CREATE DEFINER=`root`@`%` TRIGGER `trigg_change_datapoints` 
    AFTER UPDATE ON `datapoints` 
      FOR EACH ROW
           UPDATE plclist 
           SET `CHANGE` = 1
           WHERE plcname = NEW.plcname   

macht was es soll ... passt.

Nun möchte ich aber nur das "update plclist" ausführen, wenn bestimmte Spalten sich geändert haben.

CREATE DEFINER=`root`@`%` TRIGGER `trigg_change_datapoints` 
AFTER UPDATE ON datapoints
FOR EACH ROW
BEGIN
    IF NOT (NEW.plcvarname <=> OLD.plcvarname)
       OR NOT (NEW.issymbol <=> OLD.issymbol)
    THEN
        UPDATE plclist
        SET `change` = 1
        WHERE plcname = NEW.plcname;
    END IF;
END

Hier kommt eine Fehlermeldung ERROR 1064, aber ich habe doch schon alles mit backticks ausgeführt.

Ich komme hier nicht weiter ....

Danke !!!

akzeptierte Antworten