确定行是否曾经被更新

时间:2018-11-26 21:51:44

标签: sql oracle oracle11g

可能很远,但是我正在寻找一种方法,以查看自插入行以来是否对其进行过更新。

例如。

sum

有什么办法可以告诉我'C'记录已更新?

此外,我绝对无法控制数据模型,因此无法在实际表中添加添加时间戳和更新时间戳。

1 个答案:

答案 0 :(得分:3)

这将起作用:

create table test_data(a varchar(1));
insert into test_data values('A');
insert into test_data values('B');
insert into test_data values('C');
insert into test_data values('D');
select * from test_data;

 A
 B
 C
 D
create table noofchanges(data varchar(1),numberofchanges int) ;
insert into noofchanges(data,numberofchanges) select a,0 from test_data;
select * from noofchanges;

A   0
B   0
C   0
D   0


CREATE OR REPLACE TRIGGER test_data_before_update
BEFORE UPDATE
   ON test_data
   FOR EACH ROW
BEGIN
    update noofchanges 
    set numberofchanges=numberofchanges+1 
    where data=:old.a;    
END;


update test_data set a='A' where a='B';
select * from test_data;


 A 
 A
 C
 D

select * from noofchanges
A   0
B   1
C   0
D   0

谢谢你!!!!