Cómo encontrar una tabla con una columna específica en postgresql


Estoy usando postgresql 9.1. Tengo el nombre de la columna de una tabla. Es posible encontrar la tabla(s) que tiene esta columna? ¿Cómo? Gracias de antemano.

Author: Hasan Iqbal, 2013-08-29

3 answers

Puede consultar catálogos de sistemas :

select c.relname
from pg_class as c
    inner join pg_attribute as a on a.attrelid = c.oid
where a.attname = <column name> and c.relkind = 'r'

demostración de sql fiddle

 34
Author: Roman Pekar,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-08-29 10:46:58

También puedes hacer

 select table_name from information_schema.columns where column_name = 'your_column_name'
 84
Author: Ravi Shekhar,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-08-22 10:16:52

He utilizado la consulta de @ Roman Pekar como base y agregado el nombre del esquema (relevante en mi caso)

select n.nspname as schema ,c.relname
    from pg_class as c
    inner join pg_attribute as a on a.attrelid = c.oid
    inner join pg_namespace as n on c.relnamespace = n.oid
where a.attname = 'id_number' and c.relkind = 'r'

demostración de sql fiddle

 2
Author: jutky,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-04-09 06:56:02