我有这段代码(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 :(得分: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);