MudGuard: sql (mariadb) trigger

Beitrag lesen

Hi,

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.

Problem ist, daß das ; als Default-Delimiter das CREATE-Statement beendet.

Vorher ein

Delimiter $$

und danach noch ein

$$
Delimiter ; 

sollte helfen. Das erste setzt den Statement-Delimiter auf $$. Das $$ im zweiten Teil beendet dann das Create-Statement. Und die letzte Zeile setzt den Statement-Delimiter wieder auf den Strichpunkt.

cu,
Andreas a/k/a MudGuard