解决方案 »

  1.   

    不限制of kscj就行了
    creat or replace
    tigger No_update_result
    before UPDATE on RESULT --of kscj
    for each row
    BEGIN
    insert into czjl (nr,time)values('尝试更新成绩信息' || :OLD.id,sysdate);
    RAISE_APPLICATION_ERROR(-20001,'不能更新');
    end No_update_result;
      

  2.   


    表里面的其他信息是允许修改的啊,就是唯独那一列不允许修改。有没有其他办法
    限制一下,加条件,if :old.XX = :new.XX .....and :old.kscj <> :new.kscj then 这样呢,其实我也刚学触发器 只是发表自己的看法,希望对你有帮助,
      

  3.   


    表里面的其他信息是允许修改的啊,就是唯独那一列不允许修改。有没有其他办法
    限制一下,加条件,if :old.XX = :new.XX .....and :old.kscj <> :new.kscj then 这样呢,其实我也刚学触发器 只是发表自己的看法,希望对你有帮助,我把触发器修改了一下,编译是通过了,但是执行不起来:意思是先删除,再次写入,但是执行SQLupdate的时候报错
    create or update trigger Noupdate_result 
    after update on result
    for each row
    begin
    insert into czjl(jb,nr,time,userid)values('2','尝试更新成绩信息'+:new.sfzmhm,sysdate,'后台');
    delete from result where sfzmhm=:old.sfzmhm;
    insert into result(sfzmhm,kscj,ksrq......) values (:old.sfzmhm,:old.kscj,:old.ksrq......);
    end;