CREATE MATERIALIZED VIEW
CREATE MATERIALIZED VIEW — создать материализованное представление
Синтаксис
CREATE MATERIALIZED VIEW [ IF NOT EXISTS ]имя_таблицы
[ (имя_столбца
[, ...] ) ] [ WITH (параметр_хранения
[=значение
] [, ... ] ) ] [ TABLESPACEтабл_пространство
] ASзапрос
[ WITH [ NO ] DATA ]
Описание
CREATE MATERIALIZED VIEW
определяет материализованное представление запроса. Заданный запрос выполняется и наполняет представление в момент вызова команды (если только не указано WITH NO DATA
). Обновить представление позже можно, выполнив REFRESH MATERIALIZED VIEW
.
Команда CREATE MATERIALIZED VIEW
подобна CREATE TABLE AS
, за исключением того, что она запоминает запрос, порождающий представление, так что это представление можно позже обновить по требованию. Материализованные представления сходны с таблицами во многом, но не во всём; например, не поддерживаются временные материализованные представления и автоматическая генерация OID.
Параметры
IF NOT EXISTS
Не считать ошибкой, если материализованное представление с таким именем уже существует. В этом случае будет выдано замечание. Заметьте, что нет никакой гарантии, что существующее материализованное представление как-то соотносится с тем, которое могло бы быть создано.
имя_таблицы
Имя создаваемого материализованного представления (возможно, дополненное схемой).
имя_столбца
Имя столбца в создаваемом материализованном представлении. Если имена столбцов не заданы явно, они определяются по именам столбцов результата запроса.
WITH (
параметр_хранения
[=значение
] [, ... ] )Это предложение задаёт дополнительные параметры хранения для создаваемого материализованного представления; подробнее о них можно узнать в Параметры хранения. Все параметры, которые поддерживает
CREATE TABLE
, поддерживает иCREATE MATERIALIZED VIEW
, за исключениемOIDS
. За дополнительной информацией обратитесь к CREATE TABLE.TABLESPACE
табл_пространство
Здесь
табл_пространство
— имя табличного пространства, в котором будет создано материализованное представление. Если оно не задано, выбирается default_tablespace.запрос
Команда SELECT, TABLE или VALUES. Эта команда будет выполняться в контексте с ограничениями по безопасности; в частности, будут запрещены вызовы функций, которые сами создают временные таблицы.
WITH [ NO ] DATA
Это предложение указывает, будет ли материализованное представление наполняться в момент создания. Если материализованное представление не наполняется, оно помечается как нечитаемое, так что к нему нельзя будет обращаться до выполнения
REFRESH MATERIALIZED VIEW
.
Совместимость
CREATE MATERIALIZED VIEW
является расширением Postgres Pro.