前面你知道怎么做了.把每次修改的记录都插入到T2表. 思路:
在T1表上建一个触发器. 当修改数据的时候.把原来的数据插入到T2表中. 
create or replace trigger trig_name 
    after update on T1
    for each row 
begin 
    insert into T2(字段1,字段2,字段3........)
    values(:old.字段1,:old.字段2,:old.字段3........);
end ;

解决方案 »

  1.   

    非常感谢 dinya2003(OK)  !!我还没有考虑用触发器,试一下先。谢谢!!
      

  2.   


    考虑了一下,也许触发器不行。因为修改T1表的还有其他情况,而且修改的是同一字段。比如T1中有个标志 字段,可能的数值有 0,1,2,3 对应不同的状态。修改这些值的记录要INSERT 到不同的表。不知道用触发器有没有变通的办法呢?谢谢!!
      

  3.   

    create or replace trigger trig_name 
        after update on T1
        for each row 
    begin 
        if :new.标致字段=1 then 
            insert into T2(字段1,字段2,字段3........)
            values(:old.字段1,:old.字段2,:old.字段3........);
        elsif :new.标致字段=2 then 
            insert into T2(字段1,字段2,字段3........)
            values(:old.字段1,:old.字段2,:old.字段3........);
        elsif ...
           ....
        end if;end ;
    --触发器中可以做很多事情, 很在过程中一样的出来.
      

  4.   


    帅气~~
    以前只用过简单的触发器,今天收获不少!!
    再次感谢 dinya2003(OK) !!我现在选择用游标(REF CURSOR)解决这问题,已经测试通过了。
    之所以没有选择触发器,是因为要考虑的方面不少,怕遗漏了,呵呵。
    只是用游标效率如何呢?以前也没怎么用过,不明白。触发器的效率呢?最开始考虑用两次查询,但是查询的条件相对会复杂一些,而且还关联其他好几张表。
    如果已经对表创建了索引,两次查询跟选择游标的做法进行比较,哪个效率高些呢?
    谁能给个一般性的说明,谢谢!!
    (很想弄清上面的疑问,所以没有结帖,不管有无其他答案,如果没有意外,明天中午前一定结帖)