REFRESH MATERIALIZED VIEW — substitui o conteúdo de uma visão materializada
REFRESH MATERIALIZED VIEW [ CONCURRENTLY ] nome
[ WITH [ NO ] DATA ]
O comando REFRESH MATERIALIZED VIEW substitui
inteiramente o conteúdo de uma visão materializada.
Para executar este comando, é necessário ter o privilégio
MAINTAIN na visão materializada.
O conteúdo antigo é descartado.
Se for especificado WITH DATA (o padrão),
a consulta de suporte será executada para fornecer os novos dados,
e a visão materializada será deixada em um estado legível.
Se for especificado WITH NO DATA, nenhum novo dado
será gerado, e a visão materializada será deixada em um estado
não legível.
CONCURRENTLY e WITH NO DATA
não podem ser especificados juntos.
CONCURRENTLYAtualiza a visão materializada sem bloquear as consultas concorrentes à visão materializada. Sem esta opção, uma atualização que afeta muitas linhas tenderá a usar menos recursos e concluir mais rapidamente, mas poderá bloquear outras conexões que estão tentando ler a visão materializada. Esta opção pode ser mais rápida nos casos em que é afetado um pequeno número de linhas.
Esta opção só é permitida se houver pelo menos um índice
UNIQUE na visão materializada, que usa apenas
nomes de coluna e inclui todas as linhas; ou seja, não deve ser um
índice de expressão ou incluir uma cláusula WHERE.
Esta opção só poderá ser usada quando a visão materializada já estiver preenchida.
Mesmo com esta opção, pode ser executado apenas um
REFRESH por vez em qualquer visão materializada.
nomeO nome (opcionalmente qualificado pelo esquema) da visão materializada a ser atualizada.
Havendo uma cláusula ORDER BY na consulta de
definição da visão materializada, o conteúdo original da visão
materializada será ordenado dessa forma; mas o comando
REFRESH MATERIALIZED VIEW não garante a
preservação dessa ordenação.
Enquanto REFRESH MATERIALIZED VIEW estiver em execução,
o search_path será temporariamente mudado para
pg_catalog, pg_temp.
Este comando substitui o conteúdo da visão materializada chamada
order_summary, usando a consulta de definição da
visão materializada, e a deixa no estado de legível:
REFRESH MATERIALIZED VIEW order_summary;
Este comando libera o armazenamento associado à visão materializada
annual_statistics_basis, e a deixa no estado de
ilegível:
REFRESH MATERIALIZED VIEW annual_statistics_basis WITH NO DATA;
O comando REFRESH MATERIALIZED VIEW é uma
extensão do PostgreSQL ao padrão
SQL.