0
我有一個帶有4個子表的繼承表。
如何知道特定行的源表?從父表中選擇一行時顯示子表名
我有一個帶有4個子表的繼承表。
如何知道特定行的源表?從父表中選擇一行時顯示子表名
從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
將返回特定子表中的行被取出。
使用系統欄tableoid
,它可用於任何表。
但是你不需要加入到pg_class
。只需投射到regclass
(然後選擇text
,可選)。
SELECT tbl_id, tableoid::regclass::text AS source
FROM tbl
WHERE <some condition>;
相關:
謝謝!它工作很好 – Santi