sql >> Base de Datos >  >> RDS >> PostgreSQL

Cómo enumerar todas las vistas en una base de datos PostgreSQL

En PostgreSQL, podemos usar information_schema.views view para devolver todas las vistas en una base de datos.

También podemos usar el \dv comando psql para hacer lo mismo.

Ejemplo de information_schema.views Ver

Aquí hay un ejemplo del uso de information_schema.views vista para devolver una lista de vistas en la base de datos actual:

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;

Resultado de ejemplo:

+--------+----------------------------+
| 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                 |
+--------+----------------------------+

Aquí, excluimos information_schema y pg_catalog para que solo obtengamos vistas públicas y creadas por usuarios, y no seamos bombardeados con vistas del sistema.

En este ejemplo, estaba en la pagila base de datos de ejemplo.

Ejemplo de \dv Comando

Cuando usamos psql, alternativamente podemos usar \dv comando:

\dv

Resultado de ejemplo:

                    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)