Postgres反向继承? (从父表继承行)

时间:2018-04-17 14:57:19

标签: postgresql inheritance union reverse

我有许多对所有模式都通用的记录。我将这些记录放在共享模式表中,并希望从每个子模式中的此共享父表继承记录行。

假设我有以下架构:

CREATE SCHEMA parent; 
CREATE SCHEMA a;
CREATE SCHEMA b;

CREATE TABLE parent.component (product_id serial PRIMARY KEY, title text);
CREATE TABLE a.component () INHERITS (parent.component); 
CREATE TABLE b.product () INHERITS (parent.component); 

INSERT INTO parent.component(title) VALUES ('parent'); 
INSERT INTO a.component(title) VALUES ('a_test') ,('a_test2') ;
INSERT INTO b.component(title) VALUES ('b_test') ,('b_test2');

当我在parent或{{1}上发出选择时,是否可以选择a.component以及b.componenta中的行的并集}?

例如:

b

返回行:

SELECT * FROM a.component; 

1 个答案:

答案 0 :(得分:0)

PostgreSQL具有多重继承,因此表可以是许多表的子节点。你可以尝试继承另一个方向!

但也许简单的UNION ALL查询是一种更简单,更好的解决方案。