我想审计特定表中的更新更改,为此我创建了一个触发器,它跟踪每次行更新,然后将更新的更改写入新的历史表中:
create table test (id number generated always as identity,name varchar2(10) default null, school varchar2(10) null);
insert into test (name,school) values ('John','MIT');
insert into test (name,school) values ('Max','Oxford');
create table test_history (id int,name varchar2(10), school varchar2(10));
create or replace trigger test_trigger
after update
of name,school
on test
for each row
begin
insert into test_history
values
(
:old.id,
:new.name,
:new.school
);
end;
/
我想做的是将特定行的更新量限制在一定的值,例如,下面的update语句只能执行10次:
update test
set
name = 'Jason'
where id = 1;
这样,如果我执行上面的语句10次,它应该可以工作,但是如果执行到第11次,它应该失败,所以一个特定的唯一id的最大行数是10。
1条答案
按热度按时间rqmkfv5c1#
计算 * history * 表中的行数,如果超过您认为合适的值,则引发错误。
更新: