No PostgreSQL, podemos usar o
information_schema.views
view para retornar todas as exibições em um banco de dados. Também podemos usar o
\dv
comando psql para fazer a mesma coisa. Exemplo do information_schema.views
Visualizar
Aqui está um exemplo de como usar o
information_schema.views
view para retornar uma lista de visualizações no banco de dados atual:SELECT
table_schema AS schema,
table_name AS view
FROM
information_schema.views
WHERE
table_schema NOT IN ('information_schema', 'pg_catalog')
ORDER BY
schema ASC,
view ASC;
Exemplo de resultado:
+--------+----------------------------+ | schema | view | +--------+----------------------------+ | public | actor_info | | public | customer_list | | public | film_list | | public | nicer_but_slower_film_list | | public | sales_by_film_category | | public | sales_by_store | | public | staff_list | +--------+----------------------------+
Aqui, excluímos
information_schema
e pg_catalog
para que tenhamos apenas visualizações públicas e criadas pelo usuário, e não sejamos bombardeados com visualizações do sistema. Neste exemplo, eu estava na
pagila
banco de dados de exemplo. Exemplo do \dv
Comando
Ao usar o psql, podemos usar alternativamente o
\dv
comando:\dv
Exemplo de resultado:
List of relations +--------+----------------------------+------+----------+ | Schema | Name | Type | Owner | +--------+----------------------------+------+----------+ | public | actor_info | view | postgres | | public | customer_list | view | postgres | | public | film_list | view | postgres | | public | nicer_but_slower_film_list | view | postgres | | public | sales_by_film_category | view | postgres | | public | sales_by_store | view | postgres | | public | staff_list | view | postgres | +--------+----------------------------+------+----------+ (7 rows)