繁体   English   中英

最后受影响的行

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM