有表
  CREATE TABLE ALARM
   (
    INT_ID NUMBER, 
EVENT_TIME DATE, 
CANCEL_TIME DATE, 
INSERT_TIME DATE DEFAULT sysdate, 
PRIMARY KEY (INT_ID)
   )
   
希望update CANCEL_TIME之后更新INSERT_TIME,试着写了触发器:
create or replace trigger trigger_alarm
after update
on alarm
FOR EACH ROW
begin
update alarm set INSERT_TIME=sysdate;
end;但是执行update时报错,请问问题出在哪里?

解决方案 »

  1.   

    create or replace trigger trigger_alarm
    after update on alarm
    FOR EACH ROW
    begin
    :new.INSERT_TIME:=sysdate;
    end;
      

  2.   

    create or replace trigger trigger_alarm
    before update
    on alarm
    FOR EACH ROW
    begin
    :new.INSERT_TIME:=sysdate;
    end;
    触发器类型要改成before,after类型的不允许修改:new值的.
      

  3.   

    你说表更新 在同时更新同一个表 会有问题不---赋值
    create or replace trigger trigger_alarm before update on alarm FOR EACH ROW
    begin
    :new.INSERT_TIME:=sysdate;
    end;