sql (mariadb) trigger
bearbeitet vonHi,
> ~~~
> 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