表层次结构中的表行为继承

当在超表下面创建子表时,子表将继承它的超表的所有属性,包括下列属性:
另外,如果表 c 从表 b 继承,并且表 b 从表 a 继承,那么表 c 自动继承表 b 所独有的行为以及表 b 从表 a 继承的行为。因此,实际定义行为的超表与继承该行为的子表之间可以相距若干层。例如:考虑以下表层次结构:
CREATE TABLE person OF TYPE person_t
(PRIMARY KEY (name))
   FRAGMENT BY EXPRESSION
name < 'n' IN dbspace1,
name >= 'n' IN dbspace2;

CREATE TABLE employee OF TYPE employee_t
(CHECK(salary > 34000))
UNDER person;

CREATE TABLE sales_rep OF TYPE sales_rep_t
LOCK MODE ROW
UNDER employee;

在这个表层次结构中,employeesales_rep 表继承 person 表的主键名和分段存储策略。sales_rep 表继承 employee 表的检查约束并添加了 LOCK MODE。下表显示了层次结构中的每个表的行为。

表行为
person
PRIMARY KEY 和 FRAGMENT BY EXPRESSION
employee
PRIMARY KEY、FRAGMENT BY EXPRESSION 和 CHECK 约束
sales_rep
PRIMARY KEY、FRAGMENT BY EXPRESSION、CHECK 约束和 LOCK MODE ROW
表层次结构还可以包含这样的子表:在这些子表中,对子表定义的行为可以覆盖(以别的方式)从其超表继承的行为。考虑以下表层次结构,除了 employee 表添加了新的存储选项之外,这个表层次结构与先前示例完全相同:
CREATE TABLE person OF TYPE person_t
(PRIMARY KEY (name))
   FRAGMENT BY EXPRESSION
name < 'n' IN person1,
name >= 'n' IN person2;

CREATE TABLE employee OF TYPE employee_t
(CHECK(salary > 34000))
   FRAGMENT BY EXPRESSION
name < 'n' IN employ1,
name >= 'n' IN employ2
UNDER person;

CREATE TABLE sales_rep OF TYPE sales_rep_t
LOCK MODE ROW
UNDER employee;

同样,employeesales_rep 表继承 person 表的主键名。然而,employee 表的分段存储策略覆盖 person 表的分段存储策略。因此,employeesales_rep 表都在数据库空间 employ1employ2 中存储数据,而 person 表在数据库空间 person1person2 中存储数据。