将delimiter ; 更改为delimiter //
如下:
mysql> delimiter //
mysql> create trigger insertArticle_Trigger after insert on article1
-> for each row
-> begin
-> update board1 set articleCount = articleCount+1 where id=new.bid;
-> end;
-> //
执行如下语句,可查看到board1表articleCount被更改:
mysql> delimiter ;
mysql> insert into article1 values(1);
其中delimiter作用:
告诉mysql解释器,该段命令是否已经结束了,mysql是否可以执行了。
默认情况下,delimiter是分号;。在命令行客户端中,如果有一行命令以分号结束, 那么回车后,mysql将会执行该命令。但有时候,不希望MySQL这么做。在为可能输入较多的语句,且语句中包含有分号。使用delimiter //,这样只有当//出现之后,mysql解释器才会执行这段语句。详见http://wander312.javaeye.com/blog/655559
你的语法没问题,我在我这边测试过了,我估计你用的是phpmyadmin,这个工具不怎么样,我以前也遇到过这个问题,你换个工具吧:Navicat for MySQL
我刚才用这个工具测的,通过了