Привет, Я DocuDroid!
Оценка ИИ поиска
Спасибо за оценку нашего ИИ поиска!
Мы будем признательны, если вы поделитесь своими впечатлениями, чтобы мы могли улучшить наш ИИ поиск для вас и других читателей.
GitHub

CREATE MATERIALIZED VIEW

Синтаксис

CREATE MATERIALIZED VIEW <table_name>
    [ (<column_name> [, ...] ) ]
    [ WITH ( <storage_parameter> [= <value>] [, ... ] ) ]
    [ TABLESPACE <tablespace_name> ]
    AS <query>
    [ WITH [ NO ] DATA ]
    [DISTRIBUTED {| BY (<column> [<opclass>], [ ... ]) | RANDOMLY | REPLICATED }]

Описание

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

Команда CREATE MATERIALIZED VIEW аналогична команде CREATE TABLE AS за исключением того, что также запоминает запрос, использованный для инициализации представления, чтобы его можно было обновлять позже по требованию. Чтобы обновить данные материализованного представления, используйте команду REFRESH MATERIALIZED VIEW. Материализованное представление обладает большинством свойств таблицы, но его нельзя сделать временным, и оно не поддерживает автоматическую генерацию OID.

Параметры

Параметр Описание

table_name

Имя (опционально указанное со схемой) создаваемого материализованного представления

column_name

Имя столбца в материализованном представлении. Имена столбцов назначаются по позиции. Первое имя столбца назначается первому столбцу результата запроса, и так далее. Если имя столбца не задано, оно берется из имен выходных столбцов запроса

WITH ( <storage_parameter> [= <value>] [, …​ ] )

Это выражение задает необязательные параметры хранения для материализованного представления. Все параметры, поддерживаемые для CREATE TABLE, также поддерживаются для CREATE MATERIALIZED VIEW, за исключением идентификаторов OID. Подробную информацию о параметрах хранения см. в статье CREATE TABLE

TABLESPACE <tablespace_name>

Параметр <tablespace_name> — имя табличного пространства, в котором должно быть создано новое материализованное представление. Если не указано, используется конфигурационный параметр сервера default_tablespace

query

Команда SELECT или VALUES. Этот запрос выполняется в режиме с ограничениями безопасности. В частности, вызовы функций, которые сами создают временные таблицы, завершатся ошибкой

WITH [ NO ] DATA

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

DISTRIBUTED BY (<column> [<opclass>], [ …​ ] )

Используется для объявления политики распределения данных материализованного представления в Greengage DB. Информацию о политике распределения таблицы см. в CREATE TABLE

DISTRIBUTED RANDOMLY

Используется для объявления политики распределения данных материализованного представления в Greengage DB. Информацию о политике распределения таблицы см. в CREATE TABLE

DISTRIBUTED REPLICATED

Используется для объявления политики распределения данных материализованного представления в Greengage DB. Информацию о политике распределения таблицы см. в CREATE TABLE

Примечания

Материализованные представления доступны только для чтения. Система не позволит выполнить INSERT, UPDATE или DELETE для материализованного представления. Используйте REFRESH MATERIALIZED VIEW, чтобы обновить данные материализованного представления.

Если вы хотите, чтобы данные были упорядочены при генерации, необходимо использовать выражение ORDER BY в запросе материализованного представления. Однако, если запрос материализованного представления содержит выражение ORDER BY или SORT, порядок или сортировка данных не гарантируются при выполнении SELECT по материализованному представлению.

Примеры

Создать представление, состоящее из комедийных фильмов:

CREATE MATERIALIZED VIEW comedies AS
SELECT *
FROM films
WHERE kind = 'comedy';

Эта команда создаст представление, содержащее столбцы, которые присутствуют в таблице film на момент создания представления. Хотя для создания материализованного представления использовался *, столбцы, добавленные позднее в таблицу, не будут частью представления

Создать представление, которое получает десять самых популярных детских имен:

CREATE MATERIALIZED VIEW topten AS
SELECT name, rank, gender, year
FROM names,
     rank
WHERE rank < '11'
  AND names.id = rank.id;

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

Команда CREATE MATERIALIZED VIEW — расширение Greengage DB стандарта SQL.

См. также