首页 > 代码库 > oracle 触发器

oracle 触发器

-- Create table a  触发器
create table T_AC_TEST
(
 
 ID             VARCHAR2(
 32) not null primary key ,
  AT_SWITCH     
 CHAR(
 1),
  AT_UPDATE_TIME
 DATE,
  AT_UPDATE_MAN 
 VARCHAR2(
 50)
)

-- 添加几条数据
select * from t_ac_test for update;
-- 验证触发器 新建b表 
create table T_AC_TEST1
(
 
 ID             VARCHAR2(
 32) not null primary key ,
  AT_SWITCH     
 CHAR(
 1),
  AT_UPDATE_MAN 
 VARCHAR2(
 50)
)

-- 添加几条数据
select * from T_AC_TEST1 for update;


-- 创建触发器器,对应的功能是 当a表的内容被修改后,b表保存a表修改的内容。
create or replace trigger tri_ins_EST_MOTHERFUCKER  -- 创建触发器
after update 
 -- 修改后操作
on ACT.t_Ac_Test
 -- on 后面的表是要修改的表 act是该表的所有者   t _ac_test  要修改的表
for each row  
 ---说明创建的是行级触发器
begin
 
 insert into ACT.t_Ac_Test1( ID,AT_SWITCH,AT_UPDATE_MAN)
 
 values
    (:
NEW. ID,
        :
NEW.AT_SWITCH,
     :
NEW.AT_UPDATE_MAN);
end;


--  创建触发器, 
create or replace trigger tri_test 
 --
before delete  
 -- 
on ACT.t_Ac_Test
 -- on act   t _ac_test 
for each row  
 ---
begin
 
 insert into ACT.t_Ac_Test1( ID,AT_SWITCH,AT_UPDATE_MAN)
 
 values
    (:
NEW. ID,
        :
NEW.AT_SWITCH,
     :
NEW.AT_UPDATE_MAN);
end;


-- 2个表的查询语句
select * from t_ac_test1;
select * from t_ac_test;

--修改a表触发器石头执行 并查看 b表的内容是否有a表修改的字段 
update T_AC_TEST  t set t.at_update_man =
 ‘‘ where  t. id  = ‘4028810f3bb26aa2013bb2babe450099‘ ;


delete from t_ac_test where id =
 ‘4028810f3bb26aa2013bb2babe450088‘


本文出自 “散散的拼着” 博客,请务必保留此出处http://angle8888.blog.51cto.com/7952608/1437390