CREATE MATERIALIZED VIEW — definir una nueva vista materializada
CREATE MATERIALIZED VIEW [ IF NOT EXISTS ]nombre_tabla[ (nombre_columna[, ...] ) ] [ USINGmétodo] [ WITH (parámetro_almacenamiento[=valor] [, ... ] ) ] [ TABLESPACEnombre_tablespace] ASconsulta[ WITH [ NO ] DATA ]
CREATE MATERIALIZED VIEW define una vista materializada de
una consulta. La consulta se ejecuta y se utiliza para llenar la vista en el momento
en que se emite el comando (a menos que se use WITH NO DATA) y puede ser
actualizada más tarde usando REFRESH MATERIALIZED VIEW.
CREATE MATERIALIZED VIEW es similar a
CREATE TABLE AS, excepto que también recuerda la consulta utilizada
para inicializar la vista, de modo que pueda actualizarse más tarde a petición.
Una vista materializada tiene muchas de las mismas propiedades que una tabla, pero no
hay soporte para vistas materializadas temporales.
CREATE MATERIALIZED VIEW requiere el privilegio
CREATE en el esquema utilizado para la vista materializada.
IF NOT EXISTSNo lances un error si ya existe una vista materializada con el mismo nombre. En este caso se emitirá una advertencia. Ten en cuenta que no hay garantía de que la vista materializada existente sea similar a la que se habría creado.
nombre_tablaEl nombre (opcionalmente calificado por esquema) de la vista materializada que se va a crear. El nombre debe ser distinto del nombre de cualquier otra relación (tabla, secuencia, índice, vista, vista materializada o tabla foránea) en el mismo esquema.
nombre_columnaEl nombre de una columna en la nueva vista materializada. Si no se proporcionan nombres de columnas, se toman de los nombres de las columnas de salida de la consulta.
USING método
Esta cláusula opcional especifica el método de acceso a tablas que se utilizará para almacenar
el contenido de la nueva vista materializada; el método debe ser un método de acceso de tipo
TABLE. Consulta la Chapter 62 para obtener más información.
Si no se especifica esta opción, se elige el método de acceso a tablas predeterminado para la
nueva vista materializada. Consulta la default_table_access_method para
obtener más información.
WITH ( parámetro_almacenamiento [= valor] [, ... ] )
Esta cláusula especifica parámetros de almacenamiento opcionales para la nueva vista materializada;
consulta la Parámetros de almacenamiento en la documentación de
CREATE TABLE para obtener más información. Todos los parámetros admitidos para
CREATE TABLE también se admiten para CREATE MATERIALIZED VIEW.
Consulta la CREATE TABLE para obtener más información.
TABLESPACE nombre_tablespace
El nombre_tablespace es el nombre del tablespace
en el que se va a crear la nueva vista materializada. Si no se especifica, se consulta
default_tablespace.
consulta
Un comando SELECT, TABLE,
o VALUES. Esta consulta se ejecutará dentro de una
operación con restricciones de seguridad; en particular, las llamadas a funciones que a su vez creen tablas
temporales fallarán. Además, mientras se ejecuta la consulta, el search_path se cambia
temporalmente a pg_catalog, pg_temp.
WITH [ NO ] DATA
Esta cláusula especifica si la vista materializada debe o no llenarse de datos en el momento de su creación.
Si no, la vista materializada se marcará como no escaneable y no se podrá consultar hasta que se utilice
REFRESH MATERIALIZED VIEW.
CREATE MATERIALIZED VIEW es una extensión de PostgreSQL.