| PostgreSQL: Das Offizielle Handbuch | ||||
|---|---|---|---|---|
| Zurück | Schnell zurück | Schnell nach vorne | Nach vorne | |
CREATE [ [ LOCAL ] { TEMPORARY | TEMP } ] TABLE tabellenname [ (spaltenname [, ...] ) ]
AS anfrageCREATE TABLE AS erzeugt eine neue Tabelle und füllt sie mit den Daten, die ein SELECT berechnet hat. Die Tabellenspalten haben die gleichen Namen und Datentypen wie das Ergebnis des SELECT, aber die Spaltennamen können auch ausdrücklich angegeben werden.
CREATE TABLE AS sieht vielleicht so aus, als würde man eine Sicht erzeugen, aber es gibt einen erheblichen Unterschied: Es erzeugt eine neue Tabelle und wertet die Anfrage einmal aus um die neue Tabelle mit Anfangsdaten zu füllen. Die neue Tabelle verfolgt aber keine späteren Änderungen in den Quelltabellen der Anfrage. Im Gegensatz dazu wird bei einer Sicht der SELECT-Befehl bei jeder Anfrage neu ausgewertet.
Wenn angegeben, dann wird die Tabelle als temporäre Tabelle erzeugt. Weitere Einzelheiten dazu finden Sie bei CREATE TABLE.
Der Name der zu erzeugenden Tabelle (möglicherweise mit Schemaqualifikation).
Der Name einer Spalte in der neuen Tabelle. Wenn keine Spaltennamen angegeben sind, dann werden die Namen der Ergebnisspalten der Anfrage übernommen.
Ein Anfragebefehl (das heißt, ein SELECT). Einzelheiten zur erlaubten Syntax erhalten Sie unter SELECT.
Dieser Befehl hat die selbe Funktionalität wie SELECT INTO, sollte aber bevorzugt verwendet werden, weil er nicht so einfach mit anderen Verwendungszwecken der Syntax SELECT ... INTO verwechselt werden kann.
Dieser Befehl wurde Oracle nachempfunden. Es gibt keinen Befehl mit der gleichen Funktionalität im SQL-Standard. Eine Kombination aus CREATE TABLE und INSERT ... SELECT erreicht jedoch das selbe Ziel mit nur geringem Mehraufwand.
| Zurück | Zum Anfang | Nach vorne |
| CREATE TABLE | Nach oben | CREATE TRIGGER |