2010-04-21 73 views
0

我有這樣的代碼(MySQL的5.1.36)觸發問題

CREATE TRIGGER problem_description AFTER INSERT ON problem_description 
FOR EACH ROW BEGIN 
INSERT INTO log SET Id=NEW.Id,user_name=NEW.user_name; 
END; 

,並有這樣的錯誤:

#1064 - 你在你的SQL語法錯誤;檢查與您的MySQL服務器版本相對應的手冊,在第3行的''旁邊使用正確的語法。

回答

0

對於一些較老的phpMyadmin和MySQL,您不能使用標準觸發器創建。我的問題:

http://stackoverflow.com/questions/4289502/trigger-to-track-changes-in-mysql-databse 

我有同樣的問題。您需要刪除分隔符和開始/結束語句。您的觸發看起來像服用點:

DROP TRIGGER IF EXISTS problem_descripter; 
CREATE TRIGGER problem_descriptor AFTER insert ON problem_description 
FOR EACH ROW 
insert into log (Id, user_name) 
values(NEW.Id, NEW.user_name); 
0

您何時會收到此錯誤消息?當你創建觸發器?您可能需要使用另一個分隔符;當你創建你的觸發器。

delimiter // 
create trigger problem_descriptor after insert on problem_description 
    for each row begin 
     insert into 
      log 
     set 
      `Id`=NEW.`Id`, 
      `user_name`=NEW.`user_name`; 
    end; 
// 
delimiter ; 
+0

當創建觸發器 – Ognjen 2010-04-21 07:36:14

+0

我使用WAMP的服務器我得到這個消息,並把後您的代碼phpMyAdmin是受阻 – Ognjen 2010-04-21 07:37:23