我有一个带有4个子表的继承表 我如何知道特定行的源表?
答案 0 :(得分:2)
来自PostgreSQL documentation on inheritance:
通过与
pg_class
建立联接,您可以看到实际的表名:SELECT p.relname, c.name, c.altitude FROM cities c, pg_class p WHERE c.altitude > 500 AND c.tableoid = p.oid;
在上面的示例中,p.relname
将返回从中获取行的特定子表。
答案 1 :(得分:1)
使用系统列tableoid
,它可用于任何表。
但您不需要加入pg_class
。只需转换为regclass
(然后转换为text
,可选)。
SELECT tbl_id, tableoid::regclass::text AS source
FROM tbl
WHERE <some condition>;
相关: