rowid:
rowid为该表行的唯一标识,是一个伪列,可以用在select中,但不可以用insert, update来修改该值。
注意:rowid的表指,普通表,cluster table, partition table, subpartition table, index, index partitions and subpartitions(注意:不包含index-organized tables).
每个表oracle都存在一个伪列rowid,这个伪列可以用select查看,但是不可以用insert, update来修改。你也不可以用delete来删除
rowid列,oracle使用rowid列来建立内部索引。你可以引用rowid的值,但rowid并不存放在数据库中,你可以创建一个表包含rowid数据类型,
但oracle不保证该值是合法的rowids。用户必须确保该rowid值是真实合法的。
urowid:
urowid(可以称为通用rowid,逻辑rowid): 表的行地址,表指的是index-organized tables。iot中物理rowid是可能变化的,另外oracle要依靠rowid来建立表的索引,所以对iot表来物理rowid就不行了。oracle以表的主键为基础引入urowid,在物理rowid基础上建立了第二个索引。每一个逻辑rowid使用一个第二索引和一个物理推测(iot中标识块的行)。
urowid支持逻辑和物理的rowids,列urowid类型可以存储各种rowids, 从8.1以后的oracle才有urowid类型,它也可以用来保存以前的rowid类型数据信息。
更新iot的主键可能导致rowid改变,该行的urowid也会改变。
阅读(6304) | 评论(1) | 转发(0) |