2012-02-07 4 views

ответ

2

Если я правильно понимаю, вы хотите знать имена столбцов, которые являются частью наследования между таблицами.

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%'; 

Этот запрос отображает имя столбца, которое является частью иерархии. Я надеюсь, что вы подаете