CREARE UNA VISTA MATERIALIZZATA
Usare il comando CREATE MATERIALIZED VIEW per creare o sostituire una vista materializzata ordinata e proiettata di un sottoinsieme di colonne delle tabelle di base. Ciascuno di questi tipi di vista proietta un sottoinsieme delle colonne della tabella di base ed è ordinato su un insieme specifico di colonne della tabella di base. Il sistema memorizza in modo persistente la vista. È possibile visualizzarla lanciando il comando " \dm.
Sintassi
CREATE [OR REPLACE] MATERIALIZED VIEW <viewname> AS SELECT <col>[,<col>…]
FROM <table> [ORDER BY <order_col>[,<order_col>…]];Input
Il comando CREATE MATERIALIZED VIEW riceve i seguenti input:
| Immissione | Descrizione |
|---|---|
| O SOSTITUIRE | Sostituire una vista materializzata esistente. Utilizzare questa opzione per ricostruire una vista dopo che la sua tabella di base è stata modificata in qualche modo o dopo aver rinominato un database. |
| <viewname> | Il nome della vista materializzata da creare. |
| <col> | La colonna o le colonne che compongono la vista. È possibile specificare fino a 64 colonne. |
| <table> | La tabella da cui viene creata la vista. |
| <order_col> | La colonna o le colonne su cui ordinare. |
Limitazioni
- È possibile specificare una sola tabella di base nella clausola FROM.
- Non è possibile utilizzare la clausola WHERE quando si crea una vista materializzata.
- Le colonne specificate nell'elenco di selezione devono esistere nella tabella di base.
- È necessario specificare almeno una colonna nell'elenco di selezione.
- È possibile selezionare fino a 64 colonne per la vista materializzata.
- Le colonne dell'elenco ORDER BY devono essere specificate nell'elenco di selezione.
- Non è possibile specificare una tabella esterna, temporanea, di sistema o una tabella di base clusterizzata (CBT) come tabella di base per la vista.
Output
Il comando CREATE MATERIALIZED VIEW ha i seguenti output:
| Emissione | Descrizione |
|---|---|
| CREATE MATERIALIZED VIEW | Il comando è stato eseguito correttamente. |
| ERROR: Relation 'view' already exists. | Una vista con il nome specificato esiste già nel database. |
Privilegi
È necessario essere l'utente amministratore o il proprietario del database o dello schema in cui è definita la vista materializzata, oppure l'account deve avere il privilegio Create Materialized View. Se si specifica l'opzione OR REPLACE, è necessario avere anche il privilegio Alter per la vista materializzata o per la classe di oggetti della vista materializzata.
Utilizzo
- Creare una vista materializzata:
MYDB.SCH1(USER)=> CREATE MATERIALIZED VIEW kinds AS SELECT t1 FROM emp ORDER BY name;