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

Sintassi per la creazione di una vista materializzata:
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:

Tabella 1. CREARE VISTA MATERIALIZZATA 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

Il comando CREATE MATERIALIZED VIEW ha le seguenti restrizioni:
  • È 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:

Tabella 2. CREARE VISTA MATERIALIZZATA uscite
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

Di seguito sono riportati alcuni esempi di utilizzo.
  • Creare una vista materializzata:
    MYDB.SCH1(USER)=> CREATE MATERIALIZED VIEW kinds AS SELECT t1 FROM 
    emp ORDER BY name;