Esta view já está localizada por padrão no catálogo de objetos do Postgresql, em information_schema.
O information_schema é um padrão ANSI, que contém views que fornecem informações sobre o banco de dados: tabelas, views, colunas e procedures.
Veja a sua localização na imagem abaixo:
1º) Exemplo:
Procurar todas as tabelas que contenham a coluna "cod_uf "?
SELECT
table_name
FROM information_schema.columns
WHERE column_name = 'cod_uf';
Ao executarmos a consulta acima, será retornado o resultado exibido na imagem abaixo:
Logo, a coluna "cod_uf ", pode ser encontrada na tabela "tb_municipio" e "tb_estado".
Legenda:
- table_name: indica qual tabela a coluna pertence;
- column_name: armazena o nome da coluna;
- columns: esta view por padrão armazena informações sobre as colunas do banco;
2º) Exemplo:
Procurar todas as tabelas que contenham colunas iniciadas por "cod_"?
SELECT
table_name,
column_name
FROM information_schema.columns
WHERE column_name LIKE 'cod_%';
Ao executarmos a consulta acima, será retornado o resultado exibido na imagem abaixo:
Logo existem colunas iniciadas por "cod_ " nas tabelas "tb_ordem_servico", "tb_municipio" e "tb_estado".
3º) Exemplo:
Além de procurar todas as tabelas que contenham colunas iniciadas por "cod_", vamos mostrar o tipo de dado de cada coluna.
Para isso vamos incluir na consulta a coluna data_type
SELECT
table_name,
column_name,
data_type
FROM information_schema.columns
WHERE column_name LIKE 'cod_%'
Ao executarmos a consulta acima, será retornado o resultado exibido na imagem abaixo:
Observações finais:
Existem mais colunas na view "columns", que podem ser utilizadas na sua consulta. Para visualizar todas, utilize "*":
SELECT
*
FROM information_schema.columns;
Para saber mais sobre o assunto acesse:
https://www.postgresql.org/docs/9.3/static/infoschema-columns.html
Ajudou demais!! Muito obrigado!
ResponderExcluir