2015-12-01 25 views
0

我發現類似的問題,但他們總是在PHP。MySQL服務器版本的正確語法使用附近''在線

代碼

CREATE TRIGGER PL_gl 
BEFORE INSERT ON Zaznam_o_vstrel_br 
for each row 
BEGIN 
IF (NEW.Autor_branky IS NOT NULL) then 
UPDATE hrac 
SET Pocet_golu = Pocet_golu + 1 
WHERE ID_num = NEW.Autor_branky; /*ERROR HERE*/ 
END IF; 
END; 

我做了這麼多的修改,我已經不知道怎麼回事正確的。

HRAC包含:

create table hrac ( 
ID_num INT AUTO_INCREMENT Primary key, 
Jmeno VARCHAR (50) NOT NULL, 
Jmeno_tymu VARCHAR (50) NOT NULL, 
Datum_narozeni DATE, 
Domovsky_klub VARCHAR (50), 
Cislo_dresu INT, 
Pocet_golu INT); 

錯誤說您的SQL語法錯誤;請檢查與您的MySQL服務器版本相對應的手冊,以便在第9行附近使用正確的語法。這不會告訴我任何事情,所以我嘗試了至少20種組合。而在SQL中,它沒有任何問題。

回答

0

假設SQL是正確的,這是我相信正在發生的事情。在你的begin ... end語句中,你有以分號結尾的語句,並且它碰到了第9行的語句,它認爲你已經完成了觸發器的定義。該點的觸發器沒有用正確的語法定義,因此失敗。試試你的第一條語句之前定義一個新的分隔符這樣的:

DELIMITER // 

然後,而不是把分號您的END語句後,使用新的分隔符:

END // 

,使您使用分號你的觸發器沒有語法錯誤。

相關問題