CREATE MATERIALIZED VIEW

Use o comando CREATE MATERIALIZED VIEW para criar ou substituir uma visualização classificada, planejada, materializada de um subconjunto das colunas de tabelas base. Cada um desses tipos de visualização projeta um subconjunto das colunas da tabela base e é classificado em um conjunto específico de colunas da tabela base. O sistema armazena a visualização persistentemente. Ela pode ser exibida emitindo o comando \dm .

Sintaxe

Sintaxe para criar um visualização materializada:
CREATE [OR REPLACE] MATERIALIZED VIEW <viewname> AS SELECT <col>[,<col>…]
FROM <table> [ORDER BY <order_col>[,<order_col>…]];

Entradas

O comando CREATE MATERIALIZED VIEW usa as seguintes entradas:

Tabela 1. Entradas CREATE MATERIALIZED VIEW
Entrada Descrição
OR REPLACE Substitua uma visualização materializada existente. Use esta opção para reconstruir uma visualização após sua tabela base mudar de alguma forma ou após você renomear um banco de dados.
<viewname> O nome da visualização materializada a ser criada.
<col> A coluna ou colunas que abrangem a visualização. É possível especificar até 64 colunas.
<table> A tabela a partir da qual a visualização será criada.
<order_col> A coluna ou colunas nas quais classificar.

Restrições

O comando CREATE MATERIALIZED VIEW tem as seguintes restrições:
  • É possível especificar somente uma tabela base na cláusula FROM.
  • Não é possível usar a cláusula WHERE quando se cria uma visualização materializada.
  • As colunas que você especifica na lista de seleção devem existir na tabela base.
  • Você deve especificar pelo menos uma coluna na lista de seleção.
  • É possível selecionar até 64 colunas para sua visualização materializada.
  • As colunas na lista ORDER BY devem ser especificadas na lista de seleção.
  • Não é possível especificar uma tabela externa, temporária, do sistema ou tabela base em cluster (CBT) como uma tabela base para a visualização.

Saídas

O comando CREATE MATERIALIZED VIEW tem as seguintes saídas:

Tabela 2. Saídas CREATE MATERIALIZED VIEW
Saída Descrição
CREATE MATERIALIZED VIEW O comando foi bem-sucedido.
ERROR: Relation 'view' already exists. Uma visualização com o nome especificado já existe no banco de dados.

Privilégios

Você deve ser o usuário administrador, ou o proprietário do banco de dados ou esquema onde a visualização materializada está definida ou a sua conta deve ter o privilégio Criar Visualização Materializada. Se especificar a opção OR REPLACE, você também deverá ter o privilégio Alterar para visualizar a visualização materializada ou para a classe de objeto Visualização Materializada.

Uso

A seguir, uso de amostra.
  • Crie uma visualização materializada:
    MYDB.SCH1(USER)=> CREATE MATERIALIZED VIEW kinds AS SELECT t1 FROM 
    emp ORDER BY name;