CREATE OR REPLACE TRIGGER trigger_name
BEFORE delete ON table_name
FOR EACH ROW
DECLARE
    mx number;
BEGIN
    select max(score) into mx from sc
if :old.score = mx then
--do some thing.
end if;
END;

解决方案 »

  1.   

    ORA-04091: 表 ZHANG.STOCKMARKET 发生了变化,触发器/函数不能读
    ORA-06512: 在"ZHANG.DEL", line 4
    ORA-04088: 触发器 'ZHANG.DEL' 执行过程中出错
    create or replace trigger del
      before delete on stocket  
      for each row
    declare
       stock_buydate date;
    begin
       select max(buydate) into stock_buydate from stocket;
       if :old.buydate=stock_buydate then
           raise_application_error(-20001,'该记录不允许删除');
       end if;
    end del;
    虽然记录没有删掉,但是根本就没有执行触发器里面的代码,系统错误也未引发