千家信息网

oracle 触发器

发表于:2025-01-21 作者:千家信息网编辑
千家信息网最后更新 2025年01月21日,-- Create table a 触发器create table T_AC_TEST( ID VARCHAR2( 32) not null primary key ,AT_SWITCH CHAR(
千家信息网最后更新 2025年01月21日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'


0