create [or replace] trigger trigger_name
before | after
insert | delete | update [of column, ...]
on table_name | view_name
[referencing old as old | new as new]
[for each row]
[when condition]
trigger body;
这个是触发器的语法,我在尝试修改触发器的时候,为什么不能修改on table_name项呢,系统总是提示“触发器 'DUTY_TR' 已经在另一表上存在, 无法替换”。我的问题是:为什么修改触发器的时候不能修改触发器所依附的表呢?
请指点我一下,谢啦

解决方案 »

  1.   

    --修改表的语句为:alter table_test ......;--如给表增加一字段为:
    alter table add field_31(varchar2(18));
      

  2.   

    我不是问的这个意思,我的意思是:比如开始创建一个emp表的触发器:
    create trigger t1
      after delete on emp
    begin
       dbms_output.put_line('ok!');
    end;当我修改时,想把触发器从emp表改到dept表,其它项不变:create or replace trigger t1
      after delete on dept
    begin
       dbms_output.put_line('ok!');
    end;系统会报错“触发器 't1' 已经在另一表上存在, 无法替换”
    这是为什么呢?为什么不能重新指定表呢?