行受影响最后

时间:2016-10-23 15:41:57

标签: sql oracle plsql

我有一个包含1列和超过100 000条记录(行)的表。超过1000名用户使用该表并更新,插入,删除表格。

是否可以在Oracle中识别出哪个行最后受影响?

2 个答案:

答案 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

创建表,它就可以工作