CREATE MATERIALIZED VIEW — define uma nova visão materializada
CREATE MATERIALIZED VIEW [ IF NOT EXISTS ]nome_da_tabela[ (nome_da_coluna[, ...] ) ] [ USINGmétodo] [ WITH (parâmetro_de_armazenamento[=valor] [, ... ] ) ] [ TABLESPACEnome_do_espaço_de_tabelas] ASconsulta[ WITH [ NO ] DATA ]
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.
IF NOT EXISTSNã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_tabelaO 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_colunaO 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.
O comando CREATE MATERIALIZED VIEW é uma extensão
do PostgreSQL ao padrão
SQL.
As informações sobre cada visão materializada no banco de dados. podem ser consultadas através da visão do sistema pg_matviews.