在mySql数据库中触发问题

时间:2010-04-21 07:19:23

标签: mysql

我有这段代码(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行的''附近使用正确的语法

2 个答案:

答案 0 :(得分: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 ;

答案 1 :(得分: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);