CREATE VIEW

Name

CREATE VIEW -- definiert eine neue Sicht

Synopsis

CREATE [ OR REPLACE ] VIEW name [ ( spaltenname [, ...] ) ] AS anfrage

Beschreibung

CREATE VIEW definiert eine Sicht einer Anfrage. Die Sicht wird nicht materialisiert. Stattdessen wird die Anfrage jedes Mal ausgeführt, wenn die Sicht in einer Anfrage verwendet wird.

CREATE OR REPLACE VIEW ist ähnlich, aber wenn eine Sicht mit dem selben Namen schon existiert, dann wird sie ersetzt. Sie können eine Sicht nur durch eine neue Anfrage ersetzen, die identische Spalten ergibt (d.h. gleiche Spaltennamen und Datentypen).

Wenn ein Schemaname angegeben wurde (zum Beispiel CREATE VIEW mein_schema.meine_sicht ...), dann wird die Sicht im angegeben Schema erzeugt, ansonsten wird sie im aktuellen Schema erzeugt. Der Sichtname muss sich von den Namen aller Sichten, Tabellen, Sequenzen und Indexe im selben Schema unterscheiden.

Parameter

name

Der Name der zu erzeugenden Sicht (möglicherweise mit Schemaqualifikation).

spaltenname

Namen für die Spalten der Sicht. Wenn keine angegeben werden, dann werden die Spaltennamen aus der Anfrage ermittelt.

anfrage

Eine Anfrage (das heißt ein SELECT-Befehl), die die Spalten und Zeilen für die Sicht ermittelt.

Weitere Informationen über gültige Anfragen erhalten Sie unter SELECT.

Meldungen

CREATE VIEW

Meldung, wenn die Sicht erfolgreich erzeugt wurde.

WARNING: Attribute 'spalte' has an unknown type

Die Sicht wird mit einer Spalte mit unbekanntem Typ erzeugt, wenn Sie den Typ nicht angegeben. Folgender Befehl verursacht zum Beispiel diese Warnung:

CREATE VIEW vista AS SELECT 'Hallo Welt'

Aber dieser Befehl nicht:

CREATE VIEW vista AS SELECT text 'Hallo Welt'

Hinweise

Gegenwärtig sind Sichten nicht aktualisierbar: Versuche, in der Sicht einzufügen, zu aktualisieren oder zu löschen, werden vom System abgelehnt. Den Effekt von aktualisierbaren Sichten können Sie mit Regeln erreichen, die die Aktualisierungsbefehle usw. in die entsprechenden Aktionen in anderen Tabellen umschreiben. Weitere Informationen dazu finden Sie unter CREATE RULE.

Beispiele

Erzeuge eine Sicht mit allen Comedy-Filmen:

CREATE VIEW comedys AS
    SELECT *
    FROM filme
    WHERE genre = 'Comedy';

Kompatibilität

Der SQL-Standard sieht für den Befehl CREATE VIEW weitere Funktionalität vor:

CREATE VIEW name [ ( spalte [, ...] ) ]
    AS anfrage
    [ WITH [ CASCADE | LOCAL ] CHECK OPTION ]

Die optionalen Klauseln für den vollen SQL-Befehl sind:

CHECK OPTION

Diese Option hat mit aktualisierbaren Sichten zu tun. Mit dieser Option werden alle INSERT- und UPDATE-Befehle in der Sicht geprüft, ob sie die Bedingungen, die die Sicht definiert, erfüllen (das heißt, dass die neuen Daten durch die Sicht sichtbar wären). Wenn nicht, dann wird die Aktualisierung abgelehnt.

LOCAL

Prüft die Integrität für diese Sicht.

CASCADE

Prüft die Integrität für diese Sicht und alle abhängigen Sichten. Wenn weder CASCADE noch LOCAL angegeben sind, dann wird CASCADE angenommen.

Die Form CREATE OR REPLACE VIEW ist eine PostgreSQL-Erweiterung.

Siehe Auch

DROP VIEW