Postgres:显示继承的字段[英] Postgres: show inherited fields

本文是小编为大家收集整理的关于Postgres:显示继承的字段的处理方法,想解了Postgres:显示继承的字段的问题怎么解决?Postgres:显示继承的字段问题的解决办法?那么可以参考本文帮助大家快速定位并解决问题。

问题描述

我应该执行什么查询来获取继承的列?阅读了 这篇 综合帖子并没有找到解决方案.

推荐答案

如果我理解正确,您想知道作为表之间继承一部分的列的名称.

SELECT nmsp_parent.nspname    AS parent_schema,
       parent.relname         AS parent_table,
       nmsp_child.nspname     AS child_schema,
       child.relname          AS child_table,           
       column_parent.attname  AS column_parent_name
FROM pg_inherits
JOIN pg_class parent            ON pg_inherits.inhparent  = parent.oid
JOIN pg_class child             ON pg_inherits.inhrelid   = child.oid
JOIN pg_namespace nmsp_parent   ON nmsp_parent.oid        = parent.relnamespace
JOIN pg_namespace nmsp_child    ON nmsp_child.oid         = child.relnamespace
JOIN pg_attribute column_parent ON column_parent.attrelid = parent.oid
WHERE column_parent.attnum > 0
AND column_parent.attname NOT ILIKE '%pg.dropped%';

此查询显示作为层次结构一部分的列名.我希望你服务

本文地址:https://www.itbaoku.cn/post/1763994.html