不行,这样只能在XYKKCMX增加一条记录 并不能更改原有记录,我想更改原有记录

解决方案 »

  1.   


    if updating then
      update.....................
    elsif inserting then
      insert..................
    elsif deleting then
    ....................
    end if;
      

  2.   

    按照 回复人: xzou(亡狼补齿)说的方法:
    CREATE OR REPLACE TRIGGER kcxxkcmxline
        BEFORE INSERT OR UPDATE OR DELETE ON XYKRKXX
        FOR EACH ROW
    BEGIN
        IF inserting THEN
          INSERT INTO XYKKCMX(BH,YPBH,YPMC,FL,GG,SL,PFJ,PFJJE,LSJ,LSJJE,CZY)
            VALUES (lpad(xykkcmxbh.nextval,8,'0'),:NEW.YPBH,:NEW.YPMC,:NEW.YPFL,
                      :NEW.GG,:NEW.RKSL,:NEW.PFJ,:NEW.PFJJE,:NEW.LSJ,
                      :NEW.LSJJE,:NEW.CZY);
        ELSIF updating THEN
          UPDATE XYKKCMX
          SET SL=:NEW.RKSL WHERE ...(必须加入限制条件,根据情况你自己写吧!);
        END IF;
    END kcxxkcmxline;
      

  3.   

    你是说要加一个WHERE 条件,可是没有什么条件可以限定啊,就是更改所选中的记录
    这个WHERE 怎么写?
      

  4.   

    如果你不加where 限制条件的话,
    当Update表XYKRKXX时,表XYKKCMX中的所有SL列都会更新,对吧?
    所以你必须加where 限制条件。
    例如:where YPBH=:NEW.YPBH and YPMC=:NEW.YPMC and
         FL=:NEW.YPFL and GG=:NEW.GG and PFJ=:NEW.PFJ and    
         PFJJE=:NEW.PFJJELSJ and LSJJE=:NEW.LSJJE and CZY=:NEW.CZY
    大概就是这个意思,你自己再修正一下。