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

CREATE MATERIALIZED VIEW

примечание

Эта страница переведена при помощи нейросети GigaChat.

CREATE MATERIALIZED VIEW — создание нового материализованного представления.

Синтаксис

CREATE MATERIALIZED VIEW [ IF NOT EXISTS ] table_name
[ (column_name [, ...] ) ]
[ USING method ]
[ WITH ( storage_parameter [= value] [, ... ] ) ]
[ TABLESPACE tablespace_name ]
AS query
[ WITH [ NO ] DATA ]

Описание

CREATE MATERIALIZED VIEW создает материализованное представление на основе указанного запроса. Запрос выполняется и используется для заполнения представления во время выполнения команды (если не указано WITH NO DATA). Позже содержимое представления можно обновить с помощью команды REFRESH MATERIALIZED VIEW.

Команда похожа на CREATE TABLE AS, но в отличие от нее, сохраняет сам запрос, что позволяет в будущем обновлять данные. Материализованное представление во многом ведет себя как обычная таблица, но временные материализованные представления не поддерживаются.

Для создания материализованного представления необходимо иметь привилегию CREATE в целевой схеме.

Параметры

IF NOT EXISTS
Подавляет ошибку, если материализованное представление с указанным именем уже существует, вместо этого будет выдано уведомление. Однако наличие представления с таким именем не означает, что оно идентично тому, которое попытались создать.
table_name
Задает имя материализованного представления, при необходимости дополненное схемой, которое должно быть создано. Имя должно быть уникальным среди всех объектов (таблиц, представлений, последовательностей и т.п.) в пределах той же схемы.
column_name
Задает имя столбца в создаваемом материализованном представлении. Если имена столбцов не указаны, они определяются по именам столбцов результата запроса.
USING method
Определяет метод доступа к данным, который будет использоваться для хранения содержимого представления, параметр необязателен.

Должен быть метод типа TABLE. Смотрите главу «Определение интерфейса для табличных методов доступа» для получения дополнительной информации. Если не указан — используется метод доступа по умолчанию (default_table_access_method).

WITH (storage_parameter [=value] [, ... ])
Задает опциональные параметры хранения данных для нового материализованного представления. Смотрите подраздел «Параметры хранения» в описании параметров команды CREATE TABLE для получения дополнительной информации. Все параметры, поддерживаемые для CREATE TABLE, также поддерживаются и для CREATE MATERIALIZED VIEW.
TABLESPACE tablespace_name
Указывает табличное пространство, в котором будет создано представление. Если не указано, используется значение из параметра default_tablespace.
query
Указывает запрос SELECT, TABLE или VALUES, результат которого сохраняется в представлении. Этот запрос выполняется в режиме с ограничениями безопасности, и, например, вызов функций, создающих временные таблицы, приведет к ошибке. Также во время выполнения команды search_path временно меняется на pg_catalog, pg_temp.
WITH [ NO ] DATA
Указывает, нужно ли сразу заполнять представление данными:
  • WITH DATA — данные загружаются при создании.
  • WITH NO DATA — данные не загружаются, и представление помечается как недоступное для запросов до тех пор, пока не будет выполнена команда REFRESH MATERIALIZED VIEW.

Совместимость

CREATE MATERIALIZED VIEW является расширением PostgreSQL.

Смотрите также

ALTER MATERIALIZED VIEW, CREATE TABLE AS, CREATE VIEW, DROP MATERIALIZED VIEW, REFRESH MATERIALIZED VIEW