本帖最后由 wyb741 于 2009-10-31 18:19:59 编辑

解决方案 »

  1.   

    begin 
    if :new.xzqx=1 then 
      update xkxx set xkrs=xkrs+1 where xkch=:old.xkch; 
    elsif :new.xzqx=0  then 
      update xkxx set xkrs=xkrs-1 where xkch=:old.xkch; 
    elsif :new.xkrs=0 then 
    delete from xkxx where  xkrs=0; 
    end if; 
    end;这三个条件判断不能写在一个if里面的把第三个elsif分离出来
    begin 
    if :new.xzqx=1 then 
      update xkxx set xkrs=xkrs+1 where xkch=:old.xkch; 
    elsif :new.xzqx=0  then 
      update xkxx set xkrs=xkrs-1 where xkch=:old.xkch; 
    end if;
    if :new.xkrs=0 then 
    delete from xkxx where  xkrs=0; 
    end if; 
    end;
      

  2.   

    执行update xzqx为0或者1的时候这两句报错
    update xkxx set xkrs=xkrs+1 where xkch=:old.xkch; update xkxx set xkrs=xkrs-1 where xkch=:old.xkch; 之前也是这个问题~是不是这句本来就有问题呀
      

  3.   

    update xkxx set xkrs=xkrs-1 where xkch=:new.xkch;这样写?
      

  4.   

    create or replace trigger xuanke 
    after update of xzqx on xkxx 
    改成create or replace trigger xuanke 
    after update on xzqx 
      

  5.   

    这个不行吧 xzqx是列明直接改成
    create or replace trigger xuanke 
    after update on xkxx 
    也是报错~