我有一个包含1列和超过100 000条记录(行)的表。超过1000名用户使用该表并更新,插入,删除表格。
是否可以在Oracle中识别出哪个行最后受影响?
答案 0 :(得分:0)
制作日记表;例如table_jnl。
还根据基表(即1000个用户使用的表)创建表触发器(在插入,更新,删除行之后)。
在每个insert,update和delete语句的触发器中,您将在日记表中创建一条记录。
答案 1 :(得分:0)
我得到了答案
create table demo(id number)rowdependencies;
Table created.
insert into demo values(1);
COMMIT;
insert into demo values(2);
COMMIT;
insert into demo values(3);
COMMIT;
现在检查
select * from (select id,SCN_TO_TIMESTAMP(ORA_ROWSCN) ts from demo)
where ts=(select max(SCN_TO_TIMESTAMP(ORA_ROWSCN)) from demo)
ID TS
-- -------------------------------------------
1 26-OCT-16 09.24.43.000000000 PM
2 26-OCT-16 09.24.43.000000000 PM
3 26-OCT-16 09.24.43.000000000 PM
现在检查更新
update demo
Set id=0 where id=2;
1 ROW UPDATED
ID TS
---- -----------------------------------------
0 26-OCT-16 09.28.15.000000000 PM
我确信这不是一个很好的方法,但如果使用rowdependencies
创建表,它就可以工作