Ответ 1
Показать все:
SELECT oid::regclass::text
FROM pg_class
WHERE relkind = 'm';
Имена автоматически экранируются и имеют соответствующую схему в соответствии с вашим текущим search_path
, где это необходимо, в листинге от regclass
до text
.
Материализованные представления в системном каталоге pg_class
обозначаются relkind = 'm'
.
В документации:
m = materialized view
Чтобы удалить все, вы можете сгенерировать необходимый SQL script с помощью этого запроса:
SELECT 'DROP MATERIALIZED VIEW ' || string_agg(oid::regclass::text, ', ')
FROM pg_class
WHERE relkind = 'm';
Возвращает:
DROP MATERIALIZED VIEW mv1, some_schema_not_in_search_path.mv2, ...
Один DROP MATERIALIZED VIEW
оператор может позаботиться о нескольких материализованных представлениях. Возможно, вам придется добавить CASCADE
в конец, если у вас есть вложенные представления.
Осмотрите полученный DDL script, прежде чем выполнять его. Вы уверены, что хотите удалить все MV из всех схем в db? (В настоящее время нет материализованных представлений в новой стандартной установке.)