CREATE MATERIALIZED VIEW
Mit dem CREATE MATERIALIZED VIEW-Befehl können Sie eine sortierte und projizierte materialisierte Ansicht eines Subsets der Basistabellenspalten erstellen oder ersetzen. Bei jedem dieser Ansichtstypen wird ein Subset der Basistabellenspalten projiziert und die Ansicht wird anhand eines bestimmten Sets der Basistabellenspalten sortiert. Die Ansicht wird vom System permanent gespeichert. Sie kann durch Absetzen des \dm-Befehls angezeigt werden.
Syntax
CREATE [OR REPLACE] MATERIALIZED VIEW <viewname> AS SELECT <col>[,<col>…]
FROM <table> [ORDER BY <order_col>[,<order_col>…]];Eingaben
Für den CREATE MATERIALIZED VIEW-Befehl sind die folgenden Eingaben zulässig:
| Eingabe | Beschreibung |
|---|---|
| OR REPLACE | Vorhandene materialisierte Ansicht ersetzen. Mit dieser Option können Sie eine Ansicht erneut erstellen, nachdem an ihrer Basistabelle Änderungen vorgenommen wurden oder nachdem Sie eine Datenbank umbenannt haben. |
| <Ansichtsname> | Der Name der zu erstellenden materialisierten Ansicht. |
| <Spalte> | Die Spalte(n), aus der/denen diese Ansicht besteht. Sie können bis zu 64 Spalten angeben. |
| <Tabelle> | Die Tabelle, anhand derer die Ansicht erstellt wird. |
| <Sortierspalte> | Mindestens eine Spalte, nach der sortiert wird. |
Einschränkungen
- Sie können nur eine einzelne Basistabelle in der FROM-Klausel angeben.
- Wenn Sie eine materialisierte Ansicht erstellen, können Sie nicht die WHERE-Klausel verwenden.
- Die von Ihnen in der Auswahlliste angegebenen Spalten müssen in der Basistabelle vorhanden sein.
- Sie müssen mindestens eine Spalte in der Auswahlliste angeben.
- Sie können bis zu 64 Spalten für Ihre materialisierte Ansicht auswählen.
- Die Spalten in der ORDER BY-Liste müssen in der Auswahlliste angegeben werden.
- Sie können eine externe oder temporäre Tabelle, eine Systemtabelle oder eine Clusterbasistabelle (CBT) nicht als Basistabelle für die Ansicht angeben.
Ausgaben
Der CREATE MATERIALIZED VIEW-Befehl hat die folgende Ausgabe:
| Ausgabe | Beschreibung |
|---|---|
| CREATE MATERIALIZED VIEW | Der Befehl war erfolgreich. |
| ERROR: Relation 'view' already exists. | Eine Ansicht mit dem angegebenen Namen ist in der Datenbank bereits vorhanden. |
Berechtigungen
Sie müssen der Benutzer mit Administratorberechtigung oder der Eigner der Datenbank oder des Schemas sein, in der/dem die materialisierte Ansicht definiert ist, oder Ihr Konto muss über die Berechtigung zum Erstellen von materialisierten Ansichten verfügen. Bei Angabe der Option OR REPLACE müssen Sie auch über Änderungsberechtigung für die materialisierte Ansicht oder für die Objektklasse für materialisierte Ansichten verügen.
Verwendung
- Materialisierte Ansicht erstellen:
MYDB.SCH1(USER)=> CREATE MATERIALIZED VIEW kinds AS SELECT t1 FROM emp ORDER BY name;