CREATE
    TRIGGER `tg_upplayers_instock` AFTER UPDATE
    ON `players`
    FOR EACH ROW 
    BEGIN
    IF old.loginAward_lastLoginTime!=new.loginAward_lastLoginTime 
    THEN
    INSERT INTO playersstock VALUES(new.id,new.name,new.onlineAward_startCountTime_,new.loginAward_lastLoginTime);
    END IF;
    END;
查了资料写的格式却报语法错误
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 '' at line 8

解决方案 »

  1.   

    DELIMITER $$
     CREATE TRIGGER `tg_upplayers_instock` AFTER UPDATE
         ON `players` FOR EACH ROW 
         BEGIN
         IF old.loginAward_lastLoginTime!=new.loginAward_lastLoginTime  THEN
         INSERT INTO playersstock VALUES(new.id,new.name,new.onlineAward_startCountTime_,new.loginAward_lastLoginTime);
         END IF;
         END;$$
    DELIMITER ;
      

  2.   


    This version of MySQL doesn't yet support 'multiple triggers with the same action time and event for one table'
      

  3.   

    看来之前已经有个update trigger了
      

  4.   


    没有啊,有个insert CREATE
        /*!50017 DEFINER = 'ding'@'%' */
        TRIGGER `tg_inplayers_instock` BEFORE INSERT ON `players` 
        FOR EACH ROW INSERT INTO playersstock VALUES(new.id,new.name,new.onlineAward_startCountTime_,new.loginAward_lastLoginTime);
      

  5.   

    SHOW TRIGGERS LIKE 'tg_upplayers_instock%';
      

  6.   


    谢谢2位,在你们的提醒下我反复琢磨终于知道我之前是创建了一个update trigger,我之前写了个简单的update trigger创建成功后,在其基础上再打开修改了。所以一直都没意识到我已经CREATE。在版主的提醒下,我用了SHOW TRIGGERS 才发现这个问题了。