[英]row affected last
我有一张表,其中有1列,并且有超过10万条记录(行)。 超过1000个用户使用该表,并且他们更新,插入,删除该表。
是否可以在Oracle中标识以找到最后受影响的行?
制作日记表; 例如table_jnl。
还要基于基表(即1000个用户使用的表)创建一个表触发器(在插入,更新,删除后的行之后)。
在每个插入,更新和删除语句的触发器中,您将在日记表中创建一条记录。
我得到了答案
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
我敢肯定这不是一个好方法,但是如果创建的表具有行依赖关系,它会起作用
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.