能用rowid判断表中的记录的插入顺序吗?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了能用rowid判断表中的记录的插入顺序吗?相关的知识,希望对你有一定的参考价值。

能用rowid来判断一行的插入时间先后吗?

首先我查了一下empno为7934的rowid,然后将这行数据删除,之后往表中插入数据7000行。发现之前删除的位置被重用了。然后按照rowid排序输出empno,发现并不是从1到7000排序的。

如果删除了记录
那么,以后插入的记录就会用到以前的ROWID

 

技术分享
SQL> select rowid from emp where empno=7934;
ROWID
--------------------
AAAR3dAAEAAAACXAAN


SQL> delete emp where empno=7934;


SQL> commit;


begin
for i in 1..7000 loop
insert into emp(empno) values(i);
end loop;
end;
/

SQL> select empno from emp where rowid =AAAR3dAAEAAAACXAAN;

EMPNO
----------
2585


SQL> select empno from emp order by rowid;

...省略很多行。。。
EMPNO
----------
657
658
659
660
1
2
3
4
5
6
7
View Code

 


以上是关于能用rowid判断表中的记录的插入顺序吗?的主要内容,如果未能解决你的问题,请参考以下文章

oracle数据库:去除重复记录 rowid

如何实现插入一条记录把这条记录放到表的第一行

InnoDB rowid管理

在oracle数据库表中没有添加rowid字段为啥会出现

几个删除重复记录的SQL语句

Oracle数据库的伪列