用oracle触发器对记录表增加记录的问题

现想对指定用户下的指定表都作一个操作记录,有一个logs表,
字段 类型
id number
objid varchar2(50) --操作表的ID字段
objname varchar2(20) --操作表的名称
optione varcahr2(20) --操作类型(增删改)
createtime date --logs记录创建时间

需求就是,创建一个触发器,当对用户下的指定表进行增删改时,就对logs表增加一条操作记录。网上搜了很久都没有找到所要的答案,不知如何能自动得知操作表的ID号及正在进行的是那种类型的操作。

具体操作如下:

创建一个触发器如下:


create or replace trigger tr_test
after update or delete or insert
on t_test
for each row
begin
if inserting then
insert into t_logs values(seq_logid.nextval,:new.id,'t_test','insert',sysdate);
elsif updating then
insert into t_logs values(seq_logid.nextval,:old.id,'t_test','update',sysdate);
elsif deleting then
insert into t_logs values(seq_logid.nextval,:old.id,'t_test','delete',sysdate);
end if;
end;[



tr_test :触发器名字
on t_test:对那个表进行触发
for each row:行级触发器
begin.....end:具体操作步骤
其中,:new.id是指insert后的ID号,old.id是指更新或删除后的ID号。seq_logid.nextval是指序列号,要建立一个q名为seq_logid的序列号
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值