当对层次结构中的超表定义索引时,您在该超表下面定义的任何子表也将继承该索引。假定一个表层次结构包含表
tab_a、
tab_b 和
tab_c,其中,
tab_a 是
tab_b 的超表,而
tab_b 是
tab_c 的超表。如果对
tab_b 的某个列创建索引,那么该索引在
tab_b 和
tab_c 中的该列上都存在。如果对
tab_a 的列创建索引,那么该索引的范围将包括
tab_a、
tab_b 和
tab_c。
重要: 不能删除或修改子表从超表继承的索引。然而,可以将索引添加至子表。
索引、唯一约束和主键全都紧密相关。当指定唯一约束或主键时,数据库服务器自动对该列创建唯一索引。因此,对超表定义的主键或唯一约束将应用于所有子表。例如:假定有两个表(一个超表和一个子表),这两个表都包含
emp_id 列。如果超表指定
emp_id 具有唯一约束,那么子表必须包含在子表和超表中都唯一的
emp_id 值。
限制: 即使层次结构中的某些表不继承主键,也不能在表层次结构中定义多个主键。