CREATE ROW TYPE parent_t (a INT); CREATE ROW TYPE child1_t (s_col SERIAL) UNDER parent_t; CREATE ROW TYPE child2_t (s8_col SERIAL8) UNDER child1_t; CREATE ROW TYPE child3_t (d FLOAT) UNDER child2_t; CREATE TABLE parent_tab of type parent_t; CREATE TABLE child1_tab of type child1_t UNDER parent_tab; CREATE TABLE child2_tab of type child2_t UNDER child1_tab; CREATE TABLE child3_tab of type child3_t UNDER child2_tab;
parent_tab 表不包含 SERIAL 类型。child1_tab 将 SERIAL 计数器引入到层次结构中。child2_tab 从 child1_tab 继承 SERIAL 列并添加了 SERIAL8 列。child3_tab 继承了 SERIAL 和 SERIAL8 列。
插入到层次结构中的任何表的 s_col 或 s8_col 列中的 0 值将插入单调递增值,而不管此插入操作由哪个表执行。
ALTER TABLE child3_tab MODIFY (s_col SERIAL(100), s8_col SERIAL8 (200))
除先前描述的行为以外,所有适用于无类型表中的 SERIAL、BIGSERIAL 和 SERIAL8 类型列的规则也都适用于表层次结构中的 SERIAL、BIGSERIAL 和 SERIAL8 类型列。有关更多信息,请参阅选择数据类型和《GBase 8s SQL 指南:参考》。