1、触发器该为:
create or replace trigger tri_update_gztemp 
after insert on gztemp
for each row
begin
  insert into gztemp_1 (YGSBH,BH,XM) values (:new.YG,:new.BH,:new.XM);
end;
注意:表gztemp 和表gztemp_1结构相同。当向gztemp表插入记录,触发器被触发,同时插入记录到表gztemp_1。
2、怎样判断一列被改动时触发该触发器?
修改触发器内容:
drop trigger tri_update_gztemp;
create or replace trigger tri_update_gztemp 
after insert or update on gztemp
for each row
begin
 if inserting then 
  insert into gztemp_1 (YGSBH,BH,XM) values (:new.YG,:new.BH,:new.XM);
 else
   update gztemp_1  set YGSBH=:new.YG,BH=:new.BH,XM=:new.XM 
      where YGSBH=:old.YG,BH=:old.BH;
 end if;
end;
/
试试看:直接拷贝编译,运行...

解决方案 »

  1.   

    TO dlmaomao(猫猫) :
        1、触发器
           此处我是随便写的一个语句目的是在修改一条记录的时候在本表的最后插入一条新记录
        2、怎样判断一列被改动时触发该触发器?   
         我的意思是比如BH列被改变时触发该触发器,然后触发器去修改其他的一列的值在SQL SERVER里我知道,不过到ORCALE里面好像就不一样了。。
      

  2.   

    1、“修改一条记录的时候在本表的最后插入一条新记录”,没有这个必要吧,除非是在另一个表中插入一条新记录,以做备份记录。
    2、当行记录改变(插入或修改)时触发器触发,BH列和其他列的值都能同时修改。不用“比如BH列被改变时触发该触发器,然后触发器去修改其他的一列的值”。
    以上供参考。