REFRESH MATERIALIZED VIEW — reemplaza el contenido de una vista materializada
REFRESH MATERIALIZED VIEW [ CONCURRENTLY ] name
[ WITH [ NO ] DATA ]
REFRESH MATERIALIZED VIEW reemplaza completamente el
contenido de una vista materializada. Para ejecutar este comando debes tener el
privilegio MAINTAIN
en la vista materializada. El contenido anterior se descarta. Si
se especifica WITH DATA (o por defecto), la consulta de respaldo
se ejecuta para proporcionar los nuevos datos, y la vista materializada queda en un
estado analizable (scannable). Si se especifica WITH NO DATA, no se
generan nuevos datos y la vista materializada queda en un estado no analizable
(unscannable).
CONCURRENTLY y WITH NO DATA no se pueden
especificar juntos.
CONCURRENTLYActualiza la vista materializada sin bloquear los accesos de lectura (SELECT) concurrentes en la misma. Sin esta opción, una actualización que afecte a muchas filas tenderá a consumir menos recursos y completarse más rápidamente, pero podría bloquear otras conexiones que intenten leer de la vista materializada. Esta opción puede ser más rápida en los casos en que se vea afectada una pequeña cantidad de filas.
Esta opción solo se permite si existe al menos un índice
UNIQUE en la vista materializada que utilice únicamente
nombres de columnas e incluya todas las filas; es decir, no debe ser un
índice de expresión ni incluir una cláusula WHERE.
Esta opción solo se puede utilizar cuando la vista materializada ya esté poblada con datos.
Incluso con esta opción, solo se puede ejecutar un REFRESH a la vez
contra una misma vista materializada.
nameEl nombre (opcionalmente calificado por esquema) de la vista materializada a actualizar.
Si hay una cláusula ORDER BY en la consulta definitoria de la
vista materializada, el contenido original de la vista materializada
se ordenará de esa manera; pero REFRESH MATERIALIZED
VIEW no garantiza preservar ese orden.
Mientras se ejecuta REFRESH MATERIALIZED VIEW, la variable de entorno search_path se cambia temporalmente a pg_catalog,
pg_temp.
Este comando reemplazará el contenido de la vista materializada llamada
order_summary utilizando la consulta de la definición de la
vista materializada, y la dejará en un estado analizable:
REFRESH MATERIALIZED VIEW order_summary;
Este comando liberará el almacenamiento asociado con la vista materializada
annual_statistics_basis y la dejará en un estado no analizable:
REFRESH MATERIALIZED VIEW annual_statistics_basis WITH NO DATA;
REFRESH MATERIALIZED VIEW es una
extensión de PostgreSQL.