Postgresql之表继承
继承是来自面向对象的数据库的概念。
让我们创建两个表:一个表TABLE8和一个表TABLE9,并创建视图取两者合并的数据
CREATE TABLE TABLE8 ( --创建表TABLE8
id varchar,
name varchar,
age int,
state char(2)
);
CREATE TABLE TABLE9 ( --创建表TABLE9
id varchar,
name varchar,
age int
);
CREATE VIEW V_TABLE --创建视图V_TABLE 用来合并表TABLE8和TABLE9
AS
SELECT id,name,age FROM table8
UNION
SELECT id,name,age FROM table9;
就查询而言,这行得通,但是多少会有点复杂
这里可以用继承来更简单的解决:
CREATE TABLE TABLE10 ( --创建表TABLE10
id varchar,
name varchar,
age int
);
CREATE TABLE TABLE10_1 ( --创建表TABLE10_1,并继承TABLE10 表的所有字段
state char(2) UNIQUE NOT NULL
) INHERITS (TABLE10);
在这种情况下,TABLE10_1 从其父级TABLE10 继承所有列。并且可以定义自己特有的列(例如 state)
结语:欢迎有其他方法的小伙伴来讨论!