一 :继承特性
Postgredsql 的空间结构为 库 database—页 schemas–表 table。
表有父表和子表 。
创建:
子表继承父表的所有字段,并且有自己独有的state字段 。
查询:
在PostgreSQL中,一个表可以从0个或者多个其他表继承,而对一个表的查询则可以引用一个表的所有行或者该表的所有行加上它所有的后代表。 默认情况是后一种行为。
SELECT name, elevation FROM cities ;
结果展示父表和子表的数据。
SELECT name, elevation FROM ONLY cities;
结果只展示该表的数据 。
插入数据:
继承不会自动地将来自INSERT或COPY命令的数据传播到继承层次中的其他表中。
INSERT总是向指定的表中插入。
继承表一般在创建时候建立,但后生的表满足子表有父表所有字段等约束时候,可以使用ALTER TABLE的INHERIT命令。
例如:ALTER TABLE travel_cities inherit cities ;
新的子表必须已经包括和父表相同名称和数据类型的列。子表还必须包括和父表相同的检查约束和检查表达式。
ALTER TABLE的 NO INHERIT命令从一个子表集中移除子表。
例如:ALTER TABLE travel_cities no inherit cities ;
一种创建一个未来将被用做子女的新表的方法是在CREATE TABLE中使用LIKE子句。这将创建一个和源表具有相同列的新表。如果源表上定义有任何CHECK约束,LIKE的INCLUDING CONSTRAINTS选