CREATE TRIGGER `test` AFTER INSERT ON `test_inbox` FOR EACH ROW begin
declare m  int;
declare n  int;
set m=123;
if m>0
then
set n=m;
end if
end;
我在执行这条语句时,不报错,触发器不知道跑哪去了,test_inbox表中却找不到任何触发器.

解决方案 »

  1.   

    不好意思,end if 后面忘了加;号
      

  2.   

    初学者建议用MYSQL的命令行工具,这样有什么错误MYSQL都会告诉你.
    mysql> create table test_inbox(id int,col int);
    Query OK, 0 rows affected (0.08 sec)mysql> delimiter //
    mysql> CREATE TRIGGER `test` AFTER INSERT ON `test_inbox`
        -> FOR EACH ROW
        -> begin
        ->  declare m  int;
        ->  declare n  int;
        ->  set m=123;
        ->  if m>0 then
        ->          set n=m;
        ->  end if
        -> end;
        -> //
    ERROR 1064 (42000): 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 10
    mysql> delimiter ;
    mysql> delimiter //
    mysql> CREATE TRIGGER `test` AFTER INSERT ON `test_inbox`
        -> FOR EACH ROW
        -> begin
        ->  declare m  int;
        ->  declare n  int;
        ->  set m=123;
        ->  if m>0 then
        ->          set n=m;
        ->  end if;
        -> end;
        -> //
    Query OK, 0 rows affected (0.11 sec)mysql> delimiter ;
    mysql>