DELIMITER &&
CREATE TRIGGER tg5  BEFORE  INSERT ON o FOR EACH ROW 
BEGIN 
  IF new.much>5 
      THEN SET new.mnch=5;
    END IF;
    UPDATE g SET unm=unm-new.mnch WHERE id=new.gid;
 END &&
 DELIMITER;  
这是传智博客的一个列 可是我怎么运行都说NEW是未知列,他的就能运行,郁闷!是软件问题还是版本问题还是什么问题
 求指教  

解决方案 »

  1.   

    你的代码是什么,MYSQL版本是多少
      

  2.   

      表 g id  name num
      表 o oid  gid much 
      

  3.   

    这种低级错误先检查再问别人。
    ======================================
      表 g id name num
      表 o oid gid much  
    DELIMITER &&
    CREATE TRIGGER tg5 BEFORE INSERT ON o FOR EACH ROW 
    BEGIN 
      IF new.much>5 
      THEN SET new.mnch=5;
      END IF;
      UPDATE g SET unm=unm-new.mnch WHERE id=new.gid;
     END &&
     DELIMITER;  
    这是传智博客的一个列 可是我怎么运行都说NEW是未知列,他的就能运行,郁闷!是软件问题还是版本问题还是什么问题
     求指教 
    ====================================================
    new.mnch为什么不是new.much? 哪里来的unm?另外你的DELIMITER;能成功?必须有空格的,就像delimiter &&
    ---------------------------------------------------------
    试一下这个
    DELIMITER &&
    CREATE TRIGGER tg5 BEFORE INSERT ON o FOR EACH ROW 
    BEGIN 
      IF new.much>5 
      THEN SET new.much=5;
      END IF;
      UPDATE g SET num=num-new.much WHERE id=new.gid;
     END &&
     DELIMITER;  
      

  4.   


    补充   delimiter  ;
      

  5.   

      错误提示 new.mnch是未知列 
    delimiter ; 前后都有 还要那里放 ?
      

  6.   

     
    补充 delimiter ;  前后都有还放那里 ?
      

  7.   

    你还是没仔细看回答。=============================
    DELIMITER &&
    CREATE TRIGGER tg5 BEFORE INSERT ON o FOR EACH ROW 
    BEGIN 
      IF new.much>5 
      THEN SET new.much=5;
      END IF;
      UPDATE g SET num=num-new.much WHERE id=new.gid;
     END &&
     DELIMITER ;  
    ===========================
    这难道不行吗?