2010-04-21 96 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