2010-11-19 3 views
0

definieren, kann ich nicht herausfinden, warum diese Trigger-Erstellung Syntax fehlschlägt:MySQL Syntaxfehler auf SET, wenn ein Trigger

CREATE TRIGGER mytrigger BEFORE UPDATE ON mytable 
FOR EACH ROW 
BEGIN 
    IF NEW.col1 = 0 AND NEW.col2 != '' AND NEW.col3 > 0 THEN 
     SET NEW.col1 = NEW.col3 - (10 * 60); 
    END IF; 
END; 

MySQL sagt, dass es ein Syntaxfehler in Zeile 5, kurz vor/auf der SET-Anweisung. Ich benutze MySQL 5.0.27. Ich kann nicht sehen, was falsch ist, denn es ist ziemlich identisch mit dem Beispiel in the manual 3/4s down.

PS: Ich gebe dies in der Registerkarte SQL auf PhpMyAdmin. Hinzufügen von "Delimiter" -Anweisungen hilft nicht. Irgendwelche Hinweise? Danke im Voraus!

+0

Es sieht gut aus, außer dem Trennzeichen. Zeile 5 ist das erste Semikolon, das für mich wieder "delimiter" sagt, aber Ihrem P.S. Ich werde das nicht als Antwort posten. –

Antwort

0

Ich habe es gefunden. Anscheinend ignoriert PhpMyAdmin den MySQL-Begrenzerbefehl, wenn er als Teil einer SQL-Abfrage eingegeben wird. Stattdessen müssen Sie das Trennzeichen in einem separaten Formularfeld unterhalb der SQL-Abfrage festlegen. Das habe ich total vermisst!