🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
[TOC] ## 概述 - pgsql 的表可以实现继承,并且修改父类的字段,会同步修改所有子表的字段 ## 示例 创建一个城市表,并添加一个子表为首都表 ``` CREATE TABLE cities ( name text, population float, elevation int -- in feet ); CREATE TABLE capitals ( state char(2) ) INHERITS (cities); ``` ## 查询 - 一个父表的查询,默认会包含它所继承的子表 - 查询父表时,无法获取子表中多出的字段 ``` > SELECT name, elevation FROM cities WHERE elevation > 500; name | elevation -----------+----------- Las Vegas | 2174 Mariposa | 1953 Madison | 845 ``` 使用 only 关键词 ``` SELECT name, elevation FROM ONLY cities WHERE elevation > 500; name | elevation -----------+----------- Las Vegas | 2174 Mariposa | 1953 ``` > 使用 only 关键词,则只会查找父表数据 查看 数据来源哪个表 ``` > select pg_class.relname,cities.* from cities,pg_class where cities.elevation>1 and cities.tableoid=pg_class.oid; > relname name population elevation age cities 2 1 2 capitals 3 3 3 3 ``` > 表格表都有一个属性 tableoid,可通过oid 进行关联