我在一个表上创建一个insert触发器, 这个触发器用于修改表自身上某个字段的值, 这样是不是不可以?或者有什么办法解决//报错
Can't update table 'table_name' in stored function/trigger because it is already used by statement which invoked this stored function/trigger

解决方案 »

  1.   


     drop trigger if EXISTS  t_goods_insert; 
     create  trigger t_goods_insert  before insert on goods
     FOR EACH ROW
     BEGIN
       update goods 
       set zhekou = if( new.promotions_price, new.promotions_price / new.price, 1 )
       where goods_id = new.goods_id;
     END
    这个样子
      

  2.   

    drop trigger if EXISTS  t_goods_insert; 
     create  trigger t_goods_insert  before insert on goods
     FOR EACH ROW
     BEGIN
          set new.zhekou = if( new.promotions_price, new.promotions_price / new.price, 1 );
              
     END
      

  3.   


    顺便问一下, mysql能不能触发器类型同时是 insert,update的
      

  4.   

    MYSQL的触发器必须各写各的,无法合并。