PostgreSQL表继承(inherits)的使用

PostgreSQL 支持表继承,首先定义一个父表,然后使用关键字 INHERITS 定义一个子表,子表继承父表的所有字段定义。

定义一个父表:
create table parent(id int, name varchar(50));

定义一个子表,从 parent 表继承:
create table child(age int) inherits (parent);

插入数据:
insert into parent values(1, 'a');
insert into child values(2, 'b', 2);

查询父表、子表数据:

db=# select * from parent;
 id | name
----+------
  1 | a
  2 | b
(2 rows)
db=# select * from child;
 id | name | age
----+------+-----
  2 | b    |   2
(1 row)
db=# select * from only parent;
 id | name
----+------
  1 | a
(1 row)
  • 查询父表(parent)会将子表的数据也一起查出来。
  • 查询子表(child)则只有子表数据能被查出来。
  • 如果只想查父表数据,不包含子表数据,需要加 only 关键字,来限定只查父表数据。update, delete 同样支持 only 关键字。
    • update only parent set name = 'c';
    • delete from only child where name='b';

文章评论

0条评论