REFRESH MATERIALIZED VIEW
Эта страница переведена при помощи нейросети GigaChat.
REFRESH MATERIALIZED VIEW
— замена содержимого материализованного представления.
Синтаксис
REFRESH MATERIALIZED VIEW [ CONCURRENTLY ] name
[ WITH [ NO ] DATA ]
Описание
REFRESH MATERIALIZED VIEW
полностью обновляет содержимое материализованного представления. Эту команду можно выполнить только с правом MAINTAIN
для материализованного представления. Предыдущее содержимое представления безвозвратно удаляется.
Если указано WITH DATA
(или оно применяется по умолчанию), запрос, определяющий представление, выполняется и выдает новые данные, и представление станет доступным для чтения (в сканируемом состоянии).
Если указано WITH NO DATA
, то данные не будут загружены, и представление останется в недоступном для чтения состоянии.
Одновременное использование CONCURRENTLY
и WITH NO DATA
запрещено.
Параметры
CONCURRENTLY
- Обновляет материализованное представление без блокировки параллельных операций чтения из него. Без этого параметра обновление может использовать меньше ресурсов и выполняться быстрее, но может блокировать другие подключения, выполняющие
SELECT
. ПараметрCONCURRENTLY
эффективен, когда обновлению подлежит небольшое количество строк.Для использования этого параметра обязательно наличие хотя бы одного
UNIQUE
индекса, состоящего только из имен столбцов (не выражений) и охватывающего все строки (то есть без условияWHERE
).Также этот параметр нельзя использовать, если представление еще не содержит данных (например, создано с
WITH NO DATA
).Кроме того, в один момент времени допустим только один
REFRESH
на одно и то же представление.
name
- Имя существующего материализованного представления, при необходимости дополненное схемой, которое должно быть изменено.
Примечания
Если в определяющем запросе представления присутствует ORDER BY
, то исходное содержимое представления будет упорядочено соответствующим образом. Однако команда REFRESH MATERIALIZED VIEW
не гарантирует сохранение этого порядка.
Во время работы REFRESH MATERIALIZED VIEW
путь поиска search_path
временно изменяется на pg_catalog
, pg_temp
.
Примеры
Обновление содержимого представления order_summary
с использованием запроса, заданного при его создании. После выполнения представление будет доступно для чтения:
REFRESH MATERIALIZED VIEW order_summary;
Очистка содержимого представления annual_statistics_basis
и перевод его в состояние, при котором оно не может быть прочитано (несканируемое состояние):
REFRESH MATERIALIZED VIEW annual_statistics_basis WITH NO DATA;
Совместимость
REFRESH MATERIALIZED VIEW
является расширением PostgreSQL.
Смотрите также
CREATE MATERIALIZED VIEW, ALTER MATERIALIZED VIEW, DROP MATERIALIZED VIEW