MYsql触发器问题 搞了一下午没搞明白
我的mysql 是 5.18的
create trigger min_art_comm
before delete on comment
for each row
begin
update `article` set `comment`=`comment`-1 where `article`.id=old.article;
end;很奇怪old怎么不是关键字一下是错误信息You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'end' at line 1

解决方案 »

  1.   

    create trigger min_art_comm
    before delete on comment
    for each row
    update `article` set `comment`=`comment`-1 where `article`.id=old.article;
      

  2.   

    或者加上delimiter,至于delimiter的作用,可以看一下手册中的说明delimiter //
    create trigger min_art_comm
    before delete on comment
    for each row
    begin
    update `article` set `comment`=`comment`-1 where `article`.id=old.article;
    end;
    //
    delimiter ;
      

  3.   

    You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'end' at line 1从这个错误提示可以看出,是执行到第一个分号就提交了,所以导致错误。
    用2楼的办法,先delimiter // 改变提交符,或者到客户端工具,比如MYSQL-FRONT,TOAD FOR MYSQL等里面执行。
      

  4.   


    不用begin,end也可以的?呵呵