CREATE OR REPLACE TRIGGER demotr
  BEFORE INSERT ON a
  FOR EACH ROW
declare 
t_num NUMBER;
BEGIN
  select count(*) into t_num from b where id=:new.id;
  IF t_num<> 0 THEN
    insert into c values(:new.id);
    :new.id:= 0;//不能对表a进行删除操作,此处给新插入的行设特定值
  END IF;
END demotr;
/

解决方案 »

  1.   

    CREATE OR REPLACE TRIGGER "SCOTT"."DELETEROW" AFTER INSERT 
        ON "SCOTT"."A" 
    declare
       i number;
    begin
      select a.id into i from a,b where a.id=b.id;
      if i >= 0 then
        delete from a where id=i;
        insert into c values (i); 
      end if;
    end;
      

  2.   

    你可以试试在after insert 里删
      

  3.   

    好像是不可以的。bzszp(SongZip) 的答案我记得以前我做过这样的实验,不能在触发器中改当前的:New值。
    zhaoyongzhu(zhaoyongzhu) 也是一样的,在触器中不能对当前的数据表进行任何操作。