当前位置: 代码迷 >> Oracle管理 >> 一个简略的oracle触发器
  详细解决方案

一个简略的oracle触发器

热度:58   发布时间:2016-04-24 05:52:08.0
一个简单的oracle触发器
我有一张表table1
id name pwd sum
001 ss 123 100
002 ww 11 200
002 qq 22 100

table2
id name cc
001 ss 00

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

------解决方案--------------------
SQL code
create or replace trigger tr_after_update_t1 after update on t1for each rowbegin   insert into t2(id, name, cc) values(:new.id, :new.name, '00'); --:old.id, :old.nameend;
------解决方案--------------------
楼上是写的更新时,我就写个插入时:
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表时修改前的表的数据
------解决方案--------------------
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;
------解决方案--------------------
SQL code
create or replace trigger tr_after_update_t1 after update,delete,insert on t1for each rowbegin       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;
------解决方案--------------------
探讨
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;

------解决方案--------------------
支持樓上的
------解决方案--------------------
探讨
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;
  相关解决方案