CREATE TRIGGER t_phome_ecms_zhang_au after insert ON phome_ecms_zhang
FOR EACH ROW
BEGIN  
    update phome_enewsmember
    set    money = money + new.sz,
           userfen = userfen + new.fanli
    where userid= new.userid
END;我写了一个触发器,显示运行的时候显示:
ERROR 1064 : 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 'update phome_enewsmember
    set    money = money + new.sz,
           userfen' at line 4请教一下,这是错误在哪里?谢谢~

解决方案 »

  1.   

    今天写了一句简单的不能在简单的sql的插入语句,它硬是错了半天我没弄明白什么原因,老跟我报1064错误,我还跟它自动生成的sql语句比较了一下看是哪不一样,比较了半天还是都一样,但是就是报1064错误。生是郁闷。最终明白了错误如下:原来phpmyadmin生成的sql语句里面的单引号('')都被转义了,所以你用和它一样的sql语句是会报错的。最简单的一句插入的sql语句,如INSERT INTO `bbs`.`lyb` (`id`, `author`, `title`, `lyTime`, `content`) VALUES(NULL, '艾丝凡', '阿士大夫', now(), '暗示的法是否的');他自动生成的sql语句可以插入成功,但是如果你自己写就是报1064错误,原来这里面的单引号('')都是转过意义的字符,你这么写是不会成功的,如insert into lyb('id','author','title','lyTime','content') values(null,'撒旦法','艾丝凡',now(),'就看了骄傲是否');这个sql语句是不会成功的。很简单,你改成insert into lyb(id,author,title,lyTime,content) VALUES(NULL,'阿士大夫','模式即可',now(),'及思想吉林市');就OK了。需要主意的一点是:后面的null不可省略(id是int型自增字段)。