Перейти к основному содержимому

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