Hello,
es lag oder liegt eindeutig an HeidiSQL (Ver 3.0 RC4)
Vielleicht gibt es auch einen Trick in HEIDI, den ich übersehen habe bisher.
Auf der Konsole funktioniert es sowohl mit root, als auch mit meinem "superuser"
mysql> delimiter #
// Delimiter für das Ende der Befehlseingabe steht nun auf #
mysql> create trigger inc_x
-> before update
-> on trigger_error
-> for each row begin
-> if (old.x > 10) then
-> set new.x = 0;
-> else
-> set new.x = new.x *2;
-> end if;
-> end; #
// Befehl wird ausgeführt
mysql> select * from trigger_error; # // hier sowohl ; für Ende des einzelnen Statements
+---+ // als auch # für das Ende der Eingabe von
| x | // Statements, weil delimiter noch nicht wieder
+---+ // zurückgestellt war (absichtlich)
| 0 |
| 1 |
| 2 |
+---+
3 rows in set (0.00 sec)
Nun habe ich endlich begriffen, wie das mit dem Delimiter gemeint ist.
Das DBMS kann damit nichts anfangen. Das ist nur für die Eingabe in der Konsole.
Wie kann ich nun dem Trigger beibringen, dass er das Update ablehnt bei einer bestimmten Bedingung und wie bekomme ich eine qualifizierte Fehlermeldung zurück zum Aufrufer des Update?
Harzliche Grüße vom Berg
http://www.annerschbarrich.de
Tom
Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
Nur selber lernen macht schlau
