我有一张表table1
id        name        pwd          sum
001       ss          123          100
002       ww           11          200
002        qq          22          100table2
id        name        cc
001        ss         00想建一个触发器,当我table1中的数据有变化,新增记录或者update任何字段的时候,就向表table2中插入
一条记录,id和name就是table1中被操作的数据,cc是我插入的一个固定值。
只要实现这个功能就行了,谢谢!

解决方案 »

  1.   

    这个看一下oracle触发器的语法就知道怎么写了。
      

  2.   

    create or replace trigger tr_after_update_t1 
    after update on t1
    for each row
    begin
       insert into t2(id, name, cc) values(:new.id, :new.name, '00'); --:old.id, :old.name
    end;
      

  3.   

    楼上是写的更新时,我就写个插入时:
    create or replace trigger tr_after_insert_t1 
    after insert on t1
    for each row
    begin
       insert into t2(id, name, cc) values(:new.id, :new.name, '00'); --:old.id, :old.name
    end;
    :new代表新插入的表的数据,:old表时修改前的表的数据
      

  4.   

    create or replace trigger tr_after_update_t1 
    after insert or update on table1
    for each row
    begin
       insert into table2(id, name, cc) values(:new.id, :new.name, '00'); 
    end;
      

  5.   


    create or replace trigger tr_after_update_t1 
    after update,delete,insert on t1
    for each row
    begin
           if inserting then
              insert into table2(id, name, cc) values(:new.id, :new.name, '00'); 
           elsif updating then
              update table2 set name=:new.name,cc=:new.cc where id=:old.id;
           elsif deleting then
              delete from table2 where id=:old.id;
           end if;
          EXCEPTION
           WHEN others THEN
            null;
    end;这个触发器,删除更新插入都可以执行,应该满足你的要求了!