2004 发表于 2018-9-11 11:58:28

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_MANVARCHAR2( 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_MANVARCHAR2( 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_TESTt set t.at_update_man = '' wheret. id= '4028810f3bb26aa2013bb2babe450099' ;
  delete from t_ac_test where id = '4028810f3bb26aa2013bb2babe450088'

页: [1]
查看完整版本: oracle 触发器