以下来自官方文档,翻译得不好,将就看:
对于数据库的每一行,都对应一个来自虚拟列rowid的值。oracle数据库rowid的值记录了每一行的必要位置信息:
·对象的编号
·每一行所在在数据文件中的数据块
·每一行在数据块中的位置(第一行为0)
·每一行所在的数据文件(第一个文件为1)。数据文件的位置关联到表空间。
通常来说,一个rowid的值是用来唯一标示数据库中的一行。但是在同一群集中存储的不同表中的行可以是同一个rowid。
虚拟列rowid的值有两种数据类型:ROWID或者UROWID。
rowid值有一些重要的用处:
·他们是最快的访问单一行的方式
·他们显示了行是怎样存储在一张表中的
·他们是唯一标示表的一行
你不应该用rowid来作一个表的主键。如果你使用import和export工具delete然后重新插入一行数据,rowid可能就会改变。如果你delete一行,oracle会重新分配他的rowid给新插入的行。
虽然你能在select和where查询语句中使用虚拟列rowid,但是这些虚拟列并不是真正存储于数据库中的。你不能dml他们
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/25915379/viewspace-722734/
,如需转载,请注明出处,否则将追究法律责任。