oracle触发器监听数据变化,【Trigger】利用Oracle的触发器,自动记录数据的变动履历...
前幾天項目中有個需求,在進行數據修改之前,要求將變更前的數據存放到對應的履歷表中,
這個功能其實放到開發小組 在后臺Java程序中實現是完全可以的,但是感覺沒有必要。
于是最后我把這部分工作拿到了DB這邊,采用觸發器方式自動完成。
很簡單,直接上代碼吧。
1》例1:
當T_INFO_RATE表中發生數據update操作時,將變更前的數據插入到履歷表BKT_INFO_RATE中。
-- 表變更履歷做成
-- Create trigger
create or replace trigger trg_Insert_BKT_INFO_RATE
before update
on T_INFO_RATE
for each row
begin
insert into BKT_INFO_RATE (
Seq,
RiskCode,
MinPayPeriod,
MaxPayPeriod,
PolYears,
DriectWageRate,
FirstOperator,
FirstDate,
LastModifyOperator,
LastModifyDate,
Remark
) VALUES (
:OLD.Seq,
:OLD.RiskCode,
:OLD.MinPayPeriod,
:OLD.MaxPayPeriod,
:OLD.PolYears,
:OLD.DriectWageRate,
:OLD.FirstOperator,
:OLD.FirstDate,
:OLD.LastModifyOperator,
:OLD.LastModifyDate,
:OLD.Remark
);
end;
/
2》例2
當t_info_user表的pwd字段發生 insert或update操作時
(即t_info_user表中創建新賬戶或,或更新既存賬戶的密碼信息時)
將賬戶-密碼信息保存到密碼履歷表T_Pwd_Hist中。
-- 變更履歷做成
-- Create trigger
create or replace trigger trg_Insert_Pwd_Hist
before insert or update
of pwd on t_info_user
for each row
begin
insert into T_Pwd_Hist (
account,
pwd,
PwdDate,
Remark
) VALUES (
:NEW.account,
:NEW.pwd,
SYSDATE,
NULL
);
end;
/
總結
以上是生活随笔為你收集整理的oracle触发器监听数据变化,【Trigger】利用Oracle的触发器,自动记录数据的变动履历...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: oracle 如何数组变成表,Oracl
- 下一篇: oracle故障级别划分,jfinal