oracle的一个菜鸟问题关于rowid和主键
发布网友
发布时间:2022-04-23 09:49
我来回答
共2个回答
热心网友
时间:2022-04-07 21:14
rowid--是行的唯一标识,这样查询时能快速准确定位到该行,不是主键,是系统默认有的
主键的作用很明显,主键必须是唯一不能重复的,插入重复主键的记录是要报错的哟
热心网友
时间:2022-04-07 22:32
主键的作用:主键是唯一且不为空的,用以标识唯一一条记录。
我们在建立数据库的时候,需要为每张表指定一个主键,所谓主键就是能够唯一标识表中某一行的属性或属性组,一个表只能有一个主键,但可以有多个候选索引。因为主键可以唯一标识某一行记录,所以可以确保执行数据更新、删除的时候不会出现张冠李戴的错误。
ROWID:它包含下列组成元素:
1. 数据对象编号:每个数据对象(如表或索引)在创建时都分配有此编号,并且此编号
在数据库中是唯一的
2. 相关文件编号:此编号对于表空间中的每个文件是唯一的
3. 块编号:表示包含此行的块在文件中的位置
4. 行编号:标识块头中行目录位置的位置
ROWID是不需要你自己来创建的,是随着你数据的生成自动产生的。他不是主键。
在内部,数据对象编号需要32 位、相关文件编号需要10 位、块编号需要22 位、行编号
需要16 位,加起来总共是80 位或10 个字节