2013-06-05 76 views
-3

請HEL PME找到錯誤IM失去我的心在這種愚蠢的事情....語法錯誤快把我逼瘋了

CREATE TRIGGER ControlVoto 
BEFORE INSERT ON havotato 
FOR EACH ROW 
BEGIN 
IF (NEW.voto<0) 
then insert into Errori(id_errore) values(1) 
end IF; 
end 
+0

錯誤是什麼?嘗試:new.voto改爲... – Randy

回答

0

你失蹤的;和使用需要設置MySQL中的分隔符,我假設你使用

delimiter | 
CREATE TRIGGER ControlVoto BEFORE INSERT ON havotato 
FOR EACH ROW 
BEGIN 
    IF (NEW.voto < 0) then 
     insert into Errori(id_errore) values(1); 
    end IF; 
end 
| 
delimiter ; 

如果你沒有設置比;更多的分隔符,那麼語句將在第一個;結束,你的觸發器定義將不完整。您需要告訴MySQL該語句應該在您定義的分隔符處結束。之後,您可以將分隔符設回delimiter ;

+0

爲什麼在此查詢中我不需要分隔符? CREATE TRIGGER ControlDataEp BEFORE INSERT ON Episodi FOR EACH ROW SET NEW.data_trasmissione = ( SELECT IF(IFNULL(MAX(data_trasmissione),0) Skyzzo

+0

因爲該觸發器在定義中不包含任何';'。 –

+0

如果你沒有設置另一個分隔符而不是';'語句將會在第一個';'結束,你的觸發器定義將不完整。您需要告訴MySQL,該標記應該在您定義的分隔符處結束。之後,您可以使用'delimiter'設置分隔符號碼' –

0

你必須使用:在新的表達

CREATE TRIGGER ControlVoto 
BEFORE INSERT ON havotato 
FOR EACH ROW 
BEGIN 
IF (:NEW.voto<0) 
then insert into Errori(id_errore) values(1) 
end IF; 
end