2012-08-01 74 views
0

嗨,我試圖創建下面觸發蹊蹺創建MySQL的觸發

CREATE TRIGGER TRIGBEFORE INSERT對員工 FOR EACH ROW BEGIN 更新員工設置用戶id =用戶id +1其中userid> 1; END

它給了我下面的mysql錯誤,請指出它有什麼不對。

1064 - 您的SQL語法錯誤;檢查對應於你的MySQL服務器版本正確的語法在第5行

+0

您的觸發器有什麼作用?你不能修改'employee'表,因爲觸發器是在這個表上創建的。 – Devart 2012-08-01 09:51:08

回答

2

你忘了設定的分隔符,拼寫錯誤的單詞:

delimiter | 
CREATE TRIGGER TRIG BEFORE INSERT ON employee 
FOR EACH ROW BEGIN 
    UPDATE employee SET userId = userId +1 WHERE userId >1; 
END; 
| 
delimiter ; 

如果不設置另一個分隔符比;的聲明將在第一;和你的觸發器定義最終將是不完整的。您需要告訴MySQL,該標記應該在您定義的分隔符處結束。之後,您可以將分隔符設回delimiter ;

+0

It Works,非常感謝... – 2012-08-01 09:43:11

0

使用近「」我認爲你有一個錯字錯TRIGBEFORE手冊:manual here

CREATE TRIGGER trigger_name BEFORE INSERT ON ...