CREATE MATERIALIZED VIEW

Utilice el comando CREATE MATERIALIZED VIEW para crear o sustituir una vista materializada, ordenada y proyectada de un subconjunto de columnas de la tabla base. Cada tipo de vista proyecta un subconjunto de columnas de la tabla base y se ordena en función de un conjunto específico de columnas de tabla base. El sistema almacena la vista de forma persistente, que se puede visualizar si se emite el comando \dm.

Sintaxis

Sintaxis para crear una vista materializada:
CREATE [OR REPLACE] MATERIALIZED VIEW <viewname> AS SELECT <col>[,<col>…]
FROM <table> [ORDER BY <order_col>[,<order_col>…]];

Entradas

El comando CREATE MATERIALIZED VIEW toma las siguientes entradas:

Tabla 1. Entradas de CREATE MATERIALIZED VIEW
Entrada Descripción
OR REPLACE Sustituya una vista materializada existente. Utilice esta opción para reconstruir una vista después de cambiar su tabla base de alguna forma o después de cambiar el nombre de la base de datos.
<viewname> Nombre de la vista materializada que se quiere crear.
<col> La columna o las columnas que comprenden esta vista. Se pueden especificar hasta 64 columnas.
<table> Tabla desde la que se crea la vista.
<order_col> Columna o columnas en función de las que se va a ordenar.

Restricciones

El comando CREATE MATERIALIZED VIEW tiene las siguientes restricciones:
  • Solo puede especificar una tabla base única en la cláusula FROM.
  • No puede utilizar la cláusula WHERE cuando crea una vista materializada.
  • Las columnas que especifica en la lista de selección deben existir en la tabla base.
  • Debe especificar al menos una columna en la lista de selección.
  • Puede seleccionar hasta 64 columnas para la vista materializada.
  • Las columnas de la lista ORDER BY deben especificarse en la lista de selección.
  • No puede especificar una tabla base externa, temporal de sistema o en clúster (CBT) como tabla base para la vista.

Resultados

El comando CREATE MATERIALIZED VIEW tiene las siguientes salidas:

Tabla 2. Salidas de CREATE MATERIALIZED VIEW
Resultado Descripción
CREATE MATERIALIZED VIEW El comando se ha ejecutado correctamente.
ERROR: Relation 'view' already exists. En la base de datos ya existe una vista con el nombre especificado:

Privilegios

Es necesario ser el usuario administrativo o el propietario de la base de datos o del esquema en el que está definida la vista materializada, o la cuenta debe tener el privilegio Create Materialized View. Si se especifica la opción OR REPLACE, también es necesario tener el privilegio Alter para la vista materializada o para la clase de objeto Materialized View.

Uso

Se proporciona el siguiente uso de muestra.
  • Crear una vista materializada:
    MYDB.SCH1(USER)=> CREATE MATERIALIZED VIEW kinds AS SELECT t1 FROM 
    emp ORDER BY name;