您的位置:首页 > 数据库 > Oracle

利用oracle触发器记录表数据修改前后属性

2012-11-07 05:56 435 查看
创建普通表
createtable TT(idnumber,namevarchar2(20),timestampdate);
创建属性修改记录表
Create table TT_history(newid number,oldid number, newname varchar2(20), oldname varchar2(20), newtimestamp date,oldtimestamp date,tt VARCHAR2(20),term VARCHAR2(20),User_at VARCHAR2(20));创建触发器
create or replace trigger AA_test_triger
after update on
TT
for each row
declare
begin
insert into TT_history values(:new.id,:old.id,:new.name,:old.name,:new.timestamp,:old.timestamp);
end TT;
或者
createorreplacetrigger
AA
AFTERINSERTORUPDATEORDELETEON
TT
foreachrow

declare
Time_now
DATE;
Terminal
CHAR(20);
begin
--get
current time, and the terminal(终端)
of the user:
Time_now
:= SYSDATE;
Terminal
:= USERENV('TERMINAL');
IF
INSERTING THEN
--记录对TT的插入操作

INSERT
INTO
TT_history VALUES(:new.id,:old.id,:new.name,:old.name,Time_now,:old.timestamp,'INSERT
',Terminal,User);
ELSIF
DELETING THEN
--记录对TT的删除操作

INSERT
INTO
TT_history VALUES(:new.id,:old.id,:new.name,:old.name,Time_now,:old.timestamp,'DELETE
',Terminal,User);
ELSIF
UPDATING THEN
--记录对TT的修改操作
INSERT
INTO
TT_history VALUES(:new.id,:old.id,:new.name,:old.name,Time_now,:old.timestamp,'update
',Terminal,User);

END
IF;
END;
修改记录查询

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: