一个库里有表A
建立个触发器,after insert on A ,
在过程里执行update A set... 尝试insert 测试数据到A表就...
报错
ERROR 1442 (HY000): Can't update table 'A' in stored function/trigger because it is already used by statement which invoked this stored function/trigger.
请教该怎么搞

解决方案 »

  1.   

    mysql 的触发器不能对自身进行操作。这样写是不对的
      

  2.   

    在MYSQL TRIGGER中不能对本表UPDATE,你要什么目的?
    用SET NEW.字段名= 123 试试
      

  3.   

    你可以做一个辅助表来实现。
    1:A表触发器执行一个INSERT  B表的操作
    2:B表的INSERT触发器,执行一个A表的操作。这样可以实现。
      

  4.   

    有表A
    程序端发送insert a=0,b=0到A
    需求是需要在每次对A insert时对那条插入的b值改为1
      

  5.   

    把你的这个update A set...  语句改成set new.col1 = 'A01';
      

  6.   


    CREATE  TRIGGER `mydb`.`A` before INSERT ON mydb.t1 FOR EACH ROW
    BEGIN
        set new.b=1;
    END;
      

  7.   

    2楼就说了,用SET NEW
    SET NEW.b= 1