2013-05-31 89 views
0

工作,我wanto在MySQL中創建一個觸發器,但是當我運行創建代碼會顯示一條錯誤消息:我的觸發器不能在MySQL中

CREATE TRIGGER before_employee_update 
    BEFORE UPDATE ON trigger 
    FOR EACH ROW BEGIN 

    update users 
    SET username= 'krishna', 
     password= 'abc'; 
END 

錯誤是:

1064 - 你在您的SQL語法中有錯誤;檢查 對應於你的MySQL服務器版本正確的語法使用 附近「時觸發每個ROW BEGIN INSERT INTO用戶設置用戶名=‘第2行

KR’ 這是代碼錯誤的手冊點:

BEFORE UPDATE ON trigger 
       ^^^^^^^ 
+0

似乎我們需要更詳細的描述來幫助... – kirelagin

+0

*不工作*不是問題。你能說出你的實際問題嗎? – hims056

+0

我是新來的mysql存儲過程,我有表觸發器和用戶 – Yanks

回答

0

觸發器是在MySQL的保留字,您應該引用這個名字 -

CREATE TRIGGER before_employee_update 
    BEFORE UPDATE 
    ON `trigger` 
    FOR EACH ROW 
BEGIN 
    UPDATE users SET username = 'krishna', password = 'abc'; 
END 

作爲一種解決方法 - 重命名錶trigger

+0

雅它的作品...謝謝。 – Yanks

+0

我該如何放置觸發器? – Yanks

+0

使用'DROP TRIGGER trigger_name;'comamnd。或者你也可以使用免費的GUI工具 - [dbForge Studio for MySQL](http://www.devart.com/dbforge/mysql/studio/)(快速版)。 – Devart

0

insert正確的語法是:

insert into users(username, password) 
    select 'krishna', 'abc'; 

你的語法是接近n更新:

update users 
SET username= 'krishna', 
    password= 'abc'; 
+0

不能直接使用更新,因爲我想更新它 – Yanks

+0

@Nirdosh。 。 。該操作位於不同的表上,因此您可以使用更新或刪除。 –

+0

沒有這不起作用 – Yanks