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
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:
| 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
- 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:
| 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
- Crear una vista materializada:
MYDB.SCH1(USER)=> CREATE MATERIALIZED VIEW kinds AS SELECT t1 FROM emp ORDER BY name;