一张表X  A B C 3列   C为主键
如果某行A 列中的数据  为0  则该行B列中的数据 设为"OK"这样的的触发器 应该怎么做 
请高手指点。自己做的  但是出错了  
CREATE TRIGGER userManagerPass AFTER  UPDATE  ON 员工信息管理表
  FOR EACH ROW BEGIN  
         IF NEW.A='0' THEN         
            update X 
    set B='OK' 
         WHERE
 `X`.`C` = new.C;
end if;
end错误信息如下
1442  Can*t update table x in stored functions/trigger because it is already be use by 
statement which invoked  the stored function / triggers

解决方案 »

  1.   

    MYSQL的触发器,无法对本表做UPDATE、INSERT、DELETE以防止递归触发。
    这是MYSQL本身的限制。你想实现的功能是什么?为会更新一条记录,如果它的A是0,则把全表中的所有记录的B都设置为OK?
      

  2.   

    如果是仅对当前记录更新则应该        IF NEW.A='0' THEN        
        set NEW.B='OK'  
    如果是所有C相同的都需要更新,则你只能在程序中实现这个功能了,MYSQL中有限制。
      

  3.   

    不行  updata new row  is not allow 
      

  4.   

     AFTER  UPDATE
    要改成before UPDATE
      

  5.   

    you meiyou ren zhidao a