如何查找从PSQL中的另一个表继承的子表

Wat*_*oto 20 postgresql

在PSQL中,有没有一种很好的方法来查找从另一个表继承的所有表?理想情况下,我可以从SQL查询中获取数据,但此时,我对任何可靠的方法都很满意.

Mic*_*ker 35

你是什​​么意思"从SQL查询"?这是否意味着SELECTpg_inherits你不够好?

SELECT pg_inherits.*, c.relname AS child, p.relname AS parent
FROM
    pg_inherits JOIN pg_class AS c ON (inhrelid=c.oid)
    JOIN pg_class as p ON (inhparent=p.oid);
Run Code Online (Sandbox Code Playgroud)

  • Watusimoto - \d也可以在命令行上传递给psql :) (2认同)

Jer*_*oen 5

如果您还需要架构名称:

SELECT cn.nspname AS schema_child, c.relname AS child, pn.nspname AS schema_parent, p.relname AS parent
FROM pg_inherits 
JOIN pg_class AS c ON (inhrelid=c.oid)
JOIN pg_class as p ON (inhparent=p.oid)
JOIN pg_namespace pn ON pn.oid = p.relnamespace
JOIN pg_namespace cn ON cn.oid = c.relnamespace
WHERE p.relname = 'your table name' and pn.nspname = 'your schema name'
Run Code Online (Sandbox Code Playgroud)