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