假如A表中有一些字段,B表为空表,当A表update时,将update的内容放在B表内以供使用

解决方案 »

  1.   


    -- 给你写个例子SQL> 
    SQL> create table ta(id int, name varchar(10), age int);
    Table created
    SQL> create table tb(id int, old_name varchar(10), new_name varchar(10));
    Table created
    SQL> create  trigger tri_ta_update
      2  before update on ta
      3  for each row
      4  begin
      5    insert into tb(id, old_name, new_name)
      6    values(:new.id, :old.name, :new.name);
      7  end;
      8  /
    Trigger created
    SQL> begin
      2      insert into ta values(100, 'zs', 100);
      3      update ta set name = 'abc';
      4      update ta set name = 'zxy';
      5  end;
      6  /
    PL/SQL procedure successfully completed
    SQL> col id format a5;
    SQL> select * from ta;
       ID NAME                                           AGE
    ----- ---------- ---------------------------------------
      100 zxy                                            100
    SQL> select * from tb;
       ID OLD_NAME   NEW_NAME
    ----- ---------- ----------
      100 zs         abc
      100 abc        zxy
    SQL> drop table ta purge;
    Table dropped
    SQL> drop table tb purge;
    Table droppedSQL> 
      

  2.   

    如果我想将更新内容的时间和具体哪个更新操作(update insert delect)都写在B表上,能实现吗
      

  3.   

    请举例,最好用excel 画一下。你想实现 什么。