PostgreSQL - Como buscar si una vista es usada por otra vista en PostgreSQL

 
Vista:
sin imagen de perfil
Val: 1
Ha aumentado su posición en 2 puestos en PostgreSQL (en relación al último mes)
Gráfica de PostgreSQL

Como buscar si una vista es usada por otra vista en PostgreSQL

Publicado por Ivan Camilo (1 intervención) el 06/09/2018 19:08:11
Hola Comunidad.

Aca les traigo una forma para poder revisar en la base de datos si una vista en particular esta siendo usada por otra vista.

esto debido a que a veces deseamos borrar una vista pero no se permite debido a que esta siendo usada en otro lado pero no sabemos donde.

tambien funciona (creo yo no probe) para buscar donde se usa una tabla.

aqui el script:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
SELECT source_table.relname as tabla_origen
, dependent_view.relname as se_usa_en
FROM pg_depend
JOIN pg_rewrite ON pg_depend.objid = pg_rewrite.oid
JOIN pg_class as dependent_view ON pg_rewrite.ev_class = dependent_view.oid
JOIN pg_class as source_table ON pg_depend.refobjid = source_table.oid
JOIN pg_attribute ON pg_depend.refobjid = pg_attribute.attrelid
    AND pg_depend.refobjsubid = pg_attribute.attnum
JOIN pg_namespace dependent_ns ON dependent_ns.oid = dependent_view.relnamespace
JOIN pg_namespace source_ns ON source_ns.oid = source_table.relnamespace
WHERE
source_ns.nspname = 'nombre_schema'
AND source_table.relname = 'nombre_vista'
AND pg_attribute.attnum > 0
ORDER BY 1,2;
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder