Siéntete en la libertad de compartir nuestra página y códigos en tus redes, necesitamos tu ayuda para aumentar esta comunidad.
Solución:
Mostrar todo:
SELECT oid::regclass::text
FROM pg_class
WHERE relkind = 'm';
Los nombres se entrecomillan automáticamente y se califican según el esquema donde sea necesario de acuerdo con su actual search_path
en el elenco de regclass
a text
.
En el catálogo del sistema pg_class
las vistas materializadas están etiquetadas con relkind = 'm'
.
El manual:
m = materialized view
A soltar todo, puede generar el script SQL necesario con esta consulta:
SELECT 'DROP MATERIALIZED VIEW ' || string_agg(oid::regclass::text, ', ')
FROM pg_class
WHERE relkind = 'm';
Devoluciones:
DROP MATERIALIZED VIEW mv1, some_schema_not_in_search_path.mv2, ...
Una DROP MATERIALIZED VIEW
declaración puede hacerse cargo de múltiples puntos de vista materializados. Es posible que deba agregar CASCADE
al final si tiene vistas anidadas.
Inspeccione el script DDL resultante para asegurarse antes de ejecutarlo. ¿Estás seguro de que quieres dejar todo ¿MV de todos los esquemas en la base de datos? ¿Y tiene los privilegios necesarios para hacerlo? (Actualmente no hay vistas materializadas en una nueva instalación estándar).
Mientras usa el terminal interactivo estándar psql
puede usar el meta-comando:
dm
Ejecuta esta consulta en el servidor:
SELECT n.nspname as "Schema",
c.relname as "Name",
CASE c.relkind WHEN 'r' THEN 'table' WHEN 'v' THEN 'view' WHEN 'm' THEN 'materialized view' WHEN 'i' THEN 'index' WHEN 'S' THEN 'sequence' WHEN 's' THEN 'special' WHEN 'f' THEN 'foreign table' WHEN 'p' THEN 'partitioned table' WHEN 'I' THEN 'partitioned index' END as "Type",
pg_catalog.pg_get_userbyid(c.relowner) as "Owner"
FROM pg_catalog.pg_class c
LEFT JOIN pg_catalog.pg_namespace n ON n.oid = c.relnamespace
WHERE c.relkind IN ('m','')
AND n.nspname <> 'pg_catalog'
AND n.nspname <> 'information_schema'
AND n.nspname !~ '^pg_toast'
AND pg_catalog.pg_table_is_visible(c.oid)
ORDER BY 1,2;
Que se puede reducir a:
SELECT n.nspname as "Schema"
, c.relname as "Name"
, pg_catalog.pg_get_userbyid(c.relowner) as "Owner"
FROM pg_catalog.pg_class c
LEFT JOIN pg_catalog.pg_namespace n ON n.oid = c.relnamespace
WHERE c.relkind = 'm'
AND n.nspname <> 'pg_catalog'
AND n.nspname <> 'information_schema'
AND n.nspname !~ '^pg_toast'
AND pg_catalog.pg_table_is_visible(c.oid)
ORDER BY 1,2;
Sección de Reseñas y Valoraciones
Recuerda que puedes comunicar esta reseña si si solucionó tu problema.