J'utilise PostgreSQL 9.1. J'ai le nom de la colonne d'une table. Est-il possible de trouver la ou les tables qui ont cette colonne ? Si oui, comment ?
Réponses
Trop de publicités?
Ravi Shekhar
Points
1479
Vous pouvez interroger catalogues de systèmes :
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'
jutky
Points
1464
J'ai utilisé la requête de @Roman Pekar comme base et ajouté le nom du schéma (pertinent dans mon cas)
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'
Dmitry Belyaev
Points
356
jjj
Points
426
Support Wildcard Trouvez le schéma de table et le nom de la table qui contient la chaîne de caractères que vous voulez trouver.
select t.table_schema,
t.table_name
from information_schema.tables t
inner join information_schema.columns c on c.table_name = t.table_name
and c.table_schema = t.table_schema
where c.column_name like '%STRING%'
and t.table_schema not in ('information_schema', 'pg_catalog')
and t.table_type = 'BASE TABLE'
order by t.table_schema;
- Réponses précédentes
- Plus de réponses