PostgreSQL unterstützt CREATE TABLE ASund SELECT INTOwann verwende ich beide?
CREATE TABLE AS- Definieren Sie eine neue Tabelle aus den Ergebnissen einer Abfrage
CREATE TABLE ASErstellt eine Tabelle und füllt sie mit Daten, die mit einemSELECTBefehl berechnet wurden . Die Tabellenspalten haben die Namen und Datentypen, die den Ausgabespalten von zugeordnet sindSELECT(außer dass Sie die Spaltennamen überschreiben können, indem Sie eine explizite Liste neuer Spaltennamen angeben).
CREATE TABLE ASähnelt der Erstellung einer Ansicht, ist aber ganz anders: Sie erstellt eine neue Tabelle und wertet die Abfrage nur einmal aus, um die neue Tabelle anfangs zu füllen. In der neuen Tabelle werden nachfolgende Änderungen an den Quellentabellen der Abfrage nicht nachverfolgt. Im Gegensatz dazu wertet eine Ansicht ihre definierendeSELECTAnweisung immer dann neu aus, wenn sie abgefragt wird.
Und dann.
SELECT INTO- Definieren Sie eine neue Tabelle aus den Ergebnissen einer Abfrage
SELECT INTOErstellt eine neue Tabelle und füllt sie mit Daten, die von einer Abfrage berechnet wurden. Die Daten werden nicht wie bei einem normalen Client zurückgegebenSELECT. Die Spalten der neuen Tabelle haben die Namen und Datentypen, die den Ausgabespalten der Tabelle zugeordnet sindSELECT.