CREATE TRIGGER ntt_ct AFTER INSERT
    ON ntt FOR EACH ROW UPDATE ntt SET ct=ct+1
WHERE no=NEW.no_no解释:我想创建一个叫ntt_ct的触发器,作用是在ntt表被插入记录后自动更新ntt表中的ct字段加1,后面那个where是只让字段no等于刚插入的记录中的no_no字段的记录才更新,我像上面那样写的触发器通过了,可好像插入记录也没什么作用一样,大家帮忙看看吧

解决方案 »

  1.   

    呵呵,应该是没什么用。
    CREATE TRIGGER ntt_ct AFTER INSERT
        ON ntt FOR EACH ROW UPDATE ntt SET @ct=@ct+1这个试试。
      

  2.   

    你的回答差点就有用了,可我菜菜还是不懂
    这样把,MYSQL,数据库名ab里一个叫aa的表,里面有a1,a2两个字段,都是int
    我要写一个触发器,就是每插入一条记录的时候,表里所有等于新插入记录里a2值的a1字段都会自动加1,有可能吗?
      

  3.   

    有可能,不过,sql语句很有问题试试下面的语句。过2分钟给你写。
      

  4.   

    DELIMITER |
    CREATE TRIGGER ntt_ct AFTER INSERT
        ON ntt FOR EACH ROW BEGIN
        UPDATE ntt SET ct=ct+1 WHERE no=NEW.no;
      END
    |
    DELIMITER ;试一下,不行再说,我没有测试,不知道是否存在语法错误。
    当然了,如果存在 存储过程 ntt_ct 先要把该存储过程删除掉。
      

  5.   

    我写了个这样的,语句如下我怕错就直接让ct=1了.顺便说下,我的no字段是个auto_increment列
    CREATE TRIGGER ntt_ct BEFORE INSERT
     ON ntt FOR EACH ROW BEGIN
     UPDATE ntt SET ct=1 WHERE no=NEW.no_no;
     END
    那个替换;用的DELIMITER |我当然也加了
    但现在我如果执行INSERT语句,就会出如下错误
    Can't update table 'ntt' in stored function/trigger because it is already used by statement which invoked this stored function/trigger