2012-08-01 66 views
0

嗨,我试图创建下面触发蹊跷创建MySQL的触发

CREATE TRIGGER TRIGBEFORE INSERT对员工 FOR EACH ROW BEGIN 更新员工设置用户id =用户id +1其中userid> 1; END

它给了我下面的mysql错误,请指出它有什么不对。

1064 - 您的SQL语法错误;检查对应于你的MySQL服务器版本正确的语法在第5行

+0

您的触发器有什么作用?你不能修改'employee'表,因为触发器是在这个表上创建的。 – Devart 2012-08-01 09:51:08

回答

2

你忘了设定的分隔符,拼写错误的单词:

delimiter | 
CREATE TRIGGER TRIG BEFORE INSERT ON employee 
FOR EACH ROW BEGIN 
    UPDATE employee SET userId = userId +1 WHERE userId >1; 
END; 
| 
delimiter ; 

如果不设置另一个分隔符比;的声明将在第一;和你的触发器定义最终将是不完整的。您需要告诉MySQL,该标记应该在您定义的分隔符处结束。之后,您可以将分隔符设回delimiter ;

+0

It Works,非常感谢... – 2012-08-01 09:43:11

0

使用近“”我认为你有一个错字错TRIGBEFORE手册:manual here

CREATE TRIGGER trigger_name BEFORE INSERT ON ...