Antes de usar los ejemplos
Los ejemplos de esta página son consultas de lectura. Reemplazá los nombres de esquema, rol y vista por los de tu entorno. Los valores de texto se escriben entre comillas simples rectas, no comillas tipográficas.
Revisión técnica del : se corrigieron ejemplos y se añadieron aclaraciones documentadas; no se ejecutaron comandos sobre bases de datos para esta revisión.
- Necesitas saber todas las vistas que tiene la base de datos, determinada tabla o esquema.
- Querés saber qué tablas utiliza determinada vista; puede consultar más de una.
Cantidad de vistas visibles en cada catálogo
SELECT count(*) FROM pg_catalog.pg_views;
La siguiente consulta puede devolver otra cantidad: information_schema.views muestra solo vistas accesibles al usuario actual.
SELECT count(*) FROM information_schema.views;
Todas las vistas ordenadas por nombre de manera ascendente
SELECT viewname FROM pg_catalog.pg_views ORDER BY viewname ASC;
SELECT viewname FROM pg_catalog.pg_views WHERE schemaname = 'tu_esquema' ORDER BY viewname ASC;
SELECT viewname FROM pg_catalog.pg_views WHERE viewowner = 'tu_rol' ORDER BY viewname ASC;
SELECT vtu.view_schema, vtu.view_name AS viewname,
vtu.table_schema, vtu.table_name AS tablename
FROM information_schema.view_table_usage AS vtu
JOIN information_schema.views AS v
ON vtu.view_catalog = v.table_catalog
AND vtu.view_schema = v.table_schema
AND vtu.view_name = v.table_name
ORDER BY vtu.view_schema, vtu.view_name, vtu.table_schema, vtu.table_name;
Tablas utilizadas por una vista concreta
SELECT vtu.view_schema, vtu.view_name AS viewname,
vtu.table_schema, vtu.table_name AS tablename
FROM information_schema.view_table_usage AS vtu
JOIN information_schema.views AS v
ON vtu.view_catalog = v.table_catalog
AND vtu.view_schema = v.table_schema
AND vtu.view_name = v.table_name
WHERE vtu.view_schema = 'tu_esquema'
AND vtu.view_name = 'tu_vista'
ORDER BY vtu.table_schema, vtu.table_name;
Cómo interpretar los resultados
Incluimos los esquemas para distinguir objetos con el mismo nombre. view_table_usage solo incluye tablas cuyo propietario sea un rol habilitado en la sesión y no incluye tablas del sistema. Un resultado vacío no demuestra que una vista carezca de dependencias.
Referencias: pg_views, information_schema.views y view_table_usage.
Comentarios (0)
Todavía no hay comentarios publicados. Podés ser la primera persona en participar.