PostgreSQL prend en charge CREATE TABLE AS
et SELECT INTO
quand dois-je utiliser les deux?
CREATE TABLE AS
- définir une nouvelle table à partir des résultats d'une requête
CREATE TABLE AS
crée une table et la remplit de données calculées par uneSELECT
commande. Les colonnes de table ont les noms et les types de données associés aux colonnes de sortie deSELECT
(sauf que vous pouvez remplacer les noms de colonne en donnant une liste explicite de nouveaux noms de colonne).
CREATE TABLE AS
ressemble à la création d'une vue, mais c'est vraiment très différent: il crée une nouvelle table et évalue la requête une seule fois pour remplir la nouvelle table initialement. La nouvelle table ne suivra pas les modifications ultérieures apportées aux tables source de la requête. En revanche, une vue réévalue saSELECT
déclaration de définition chaque fois qu'elle est interrogée.
Puis.
SELECT INTO
- définir une nouvelle table à partir des résultats d'une requête
SELECT INTO
crée une nouvelle table et la remplit de données calculées par une requête. Les données ne sont pas retournées au client, comme c'est le cas avec une normaleSELECT
. Les colonnes de la nouvelle table ont les noms et les types de données associés aux colonnes de sortie deSELECT
.