rowNum、rowId的区别

OraclerowNumrowId的区别:

rownum,rowid都叫伪列。 但是,rownum是逻辑上的编号,且其值总是从1开始,每行的rounum不是固定的。而rowid物理编号。若数据库文件没有移动,则每行的 rowid一般是固定不变的。

rownum是动态的,也就是必须先有查询到的结果集,然后再给这个结果集加上一个列,比如给结果集中的第一条数据的rownum的值为1

同rownum伪列不同的是,rowid是物理存在的,rowid是一种数据类型,它使用基于64为编码的18个字符来唯一标识一条记录物理位置的一个ID,类似于Java中一个对象的哈希码,都是为了唯一标识对应对象的物理位置,rowid虽然可以在表中进行查询,但是其值并未存储在表中,所以不支持增删改操作。

posted @ 2021-03-11 09:06  LadyGodiva  阅读(1067)  评论(0编辑  收藏  举报