CREATE MATERIALIZED VIEW

CREATE MATERIALIZED VIEW — define uma nova visão materializada

Sinopse

CREATE MATERIALIZED VIEW [ IF NOT EXISTS ] nome_da_tabela
    [ (nome_da_coluna [, ...] ) ]
    [ USING método ]
    [ WITH ( parâmetro_de_armazenamento [= valor] [, ... ] ) ]
    [ TABLESPACE nome_do_espaço_de_tabelas ]
    AS consulta
    [ WITH [ NO ] DATA ]

Descrição

O comando CREATE MATERIALIZED VIEW define uma visão materializada de uma consulta. A consulta é executada e utilizada para preencher a visão no momento em que o comando é executado (a menos que seja utilizado WITH NO DATA), podendo ser atualizada posteriormente utilizando o comando REFRESH MATERIALIZED VIEW.

O comando CREATE MATERIALIZED VIEW é semelhante ao comando CREATE TABLE AS, exceto por também se lembrar da consulta usada para inicializar a visão, para poder ser atualizada posteriormente sob demanda. Uma visão materializada tem muitas das mesmas propriedades de uma tabela, mas não há suporte para visões materializadas temporárias.

O comando CREATE MATERIALIZED VIEW requer o privilégio CREATE no esquema usado para a visão materializada.

Parâmetros

IF NOT EXISTS

Não será relatado nenhum erro se já existir uma visão materializada com este nome. É emitido um aviso neste caso. Note não haver garantia de que a visão materializada existente tenha semelhança com aquela a ser criada.

nome_da_tabela

O nome (opcionalmente qualificado pelo esquema) da visão materializada a ser criada. O nome deve ser distinto do nome de qualquer outra relação (tabela, sequência, índice, visão, visão materializada ou tabela estrangeira) no mesmo esquema.

nome_da_coluna

O nome da coluna na nova visão materializada. Se não forem fornecidos nomes para as colunas, estes serão obtidos a partir dos nomes das colunas de saída da consulta.

USING método

Esta cláusula opcional especifica o método de acesso à tabela a ser usado para armazenar o conteúdo da nova visão materializada; o método precisa ser um método de acesso do tipo TABLE. Veja Definição da interface do método de acesso à tabela para obter mais informações. Se esta opção não for especificada, será escolhido o método de acesso à tabela padrão para a nova visão materializada. Veja default_table_access_method para obter mais informações.

WITH ( parâmetro_de_armazenamento [= valor] [, ... ] )

Esta cláusula especifica parâmetros de armazenamento opcionais para a nova visão materializada; veja Parâmetros de armazenamento na documentação de CREATE TABLE para obter mais informações. Todos os parâmetros com suporte no comando CREATE TABLE também têm suporte no comando CREATE MATERIALIZED VIEW. Veja CREATE TABLE para obter mais informações.

TABLESPACE nome_do_espaço_de_tabelas

O nome_do_espaço_de_tabelas é o nome do espaço de tabelas no qual a nova visão materializada será criada. Se não for especificado será consultado default_tablespace.

consulta

Um comando SELECT, Comando TABLE, ou VALUES. Esta consulta será executada em uma operação com restrição de segurança; em particular, chamadas para funções que criam tabelas temporárias irão falhar. Além disso, enquanto a consulta estiver em execução, o search_path será temporariamente alterado para pg_catalog, pg_temp.

WITH [ NO ] DATA

Esta cláusula especifica se a visão materializada deve ou não ser preenchida no momento da criação. Se não for preenchida, a visão materializada será sinalizada como ilegível, não podendo ser consultada até que seja executado REFRESH MATERIALIZED VIEW.

Conformidade

O comando CREATE MATERIALIZED VIEW é uma extensão do PostgreSQL ao padrão SQL.

Consulta

As informações sobre cada visão materializada no banco de dados. podem ser consultadas através da visão do sistema pg_matviews.

Veja também

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