else deleting then替换成
elsif deleting then

解决方案 »

  1.   

    create or replace trigger allow_sc
    after update or delete or insert
    on sc
    for each row
    begin
     if updating then
        update s set total=total+(:new.grade)-(:old.grade)
         where sno=(:new.sno);
     End if;
     if inserting then
        update s set total=total+(:new.grade)
          where sno=:new.sno;
     End if;
     If deleting then
        update s set total=total-(:old.grade)
          where sno=:old.sno;
     end if;
    end;
    一定可以
      

  2.   

    create or replace trigger allow_sc
    after update or delete or insert
    on sc
    for each row
    begin
     if updating then
        update s set total=total+(:new.grade)-(:old.grade)
         where sno=(:new.sno);
     elsif inserting then
        update s set total=total+(:new.grade)
          where sno=(:new.sno);
     else
        update s set total=total-(:old.grade)
          where sno=(:old.sno);
    end if;
    end;
      

  3.   

    else deleting then 换成
     else 或者 elsif deleting  then 
    就行了.