[MySQL] Trigger problem **erledigt**

strolch00

redraft.de
ID: 155297
L
21 April 2006
1.684
72
Hi @all,

ich wollte gerade einen Trigger anlegen jedoch klappt das net so ganz. Ich fand diesen Trigger als Lösung meines Problem die beste Variante. Ich denke das was ich will ist klar.

Hier die Meldung inklusive dem SQL Code:

CREATE TRIGGER `testref` BEFORE UPDATE ON `test3` FOR EACH ROW BEGIN DELETE FROM `test3` WHERE DATEDIFF( DATE_FORMAT( `add_time` , '%d', DATE_FORMAT( CURRDATE(
), '%d' ) ) >=1 END

MySQL meldet: Dokumentation
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'TRIGGER `testref` BEFORE UPDATE ON `test3`
FOR EACH ROW BEGIN
DELE' at line 1

Was mache ich falsch laut Manual sollte das so stimmen: meine MySQL Version ist die 5.0.18
 
Zuletzt bearbeitet:
Zumindest fehlt am Ende der Query und nach dem END ein Semikolon, was aber denke ich nicht für das Problem verantwortlich ist.
 
Johnson schrieb:
Zumindest fehlt am Ende der Query und nach dem END ein Semikolon, was aber denke ich nicht für das Problem verantwortlich ist.

Naja das Komma ist vom PHPMyAdmin entfernt worden das war da.

Die Berechtigung kann es nicht sein weil ich sogar als root im PHPMyAdmin eingeloggt war. Da sollte ich doch zumindest den Trigger anlegen können, oder nicht?
 
@Johnson

Jap das habe ich auch grad nochmal überprüft. Der Trigger ist nochmal komplett überarbeitet und die neueste MySql Version ist jetzt drauf. Jetzt kommt ein anderer Fehler. Jetzt kommt immer:
SQL-Befehl:

CREATE TRIGGER testref BEFORE INSERT ON test1
FOR EACH
ROW BEGIN
INSERT INTO test2
SET a2 = NEW.a1;

MySQL meldet: Dokumentation
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 3

auch bei diesem Beispiel aus dem Manual:
https://dev.mysql.com/doc/refman/5.1/de/create-trigger.html

Der selbe Fehlerkommt bei meinem Trigger! Ich bin echt Ratlos.
 
So ich habe die Lösung:
Bei einer Anweisung muss das BEGINN und END weg das war der Fehler. Aber jetzt sagt er Trigger können nicht von der selben Tabelle aktiviert werden und diese dann ändern wollen. Also muss ich jetzt ne andere Lösung finden.