| Documentation PostgreSQL 7.2 | ||
|---|---|---|
| <<< Previous | Next >>> | |
SELECT [ ALL | DISTINCT [ ON ( expression [, ...] ) ] ]
* | expression [ AS output_name ] [, ...]
INTO [ TEMPORARY | TEMP ] [ TABLE ] new_table
[ FROM from_item [, ...] ]
[ WHERE condition ]
[ GROUP BY expression [, ...] ]
[ HAVING condition [, ...] ]
[ { UNION | INTERSECT | EXCEPT } [ ALL ] select ]
[ ORDER BY expression [ ASC | DESC | USING operator ] [, ...] ]
[ FOR UPDATE [ OF tablename [, ...] ] ]
[ LIMIT [ start , ] { count | ALL } ]
[ OFFSET start ]
where from_item can be:
[ ONLY ] table_name [ * ]
[ [ AS ] alias [ ( column_alias_list ) ] ]
|
( select )
[ AS ] alias [ ( column_alias_list ) ]
|
from_item [ NATURAL ] join_type from_item
[ ON join_condition | USING ( join_column_list ) ]
|
Si TEMPORARY ou TEMP est spécifié, la table est créée seulement pour la session, et est automatiquement supprimée à la fin de la session. L'existence de tables permanentes avec le même nom ne sont pas visibles (dans la session) tandis que la table temporaire existe. Les indexes créés sur une table temporaire sont aussi temporaires.
Nom de la nouvelle table à créer. Cette table ne doit pas déja exister. Cependant, une table temporaire peut être créée en ayant le même nom qu'une table permanente existante.
Toutes les autres entrées sont décrites en détail dans SELECT.
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 renvoyées au client, comme avec un SELECT normal. Les nouvelles colonnes de table ont des noms et des types associés avec les sorties colonnes du SELECT.
![]() | CREATE TABLE AS est fonctionnellement équivalent à SELECT INTO. CREATE TABLE AS est la syntaxe recommendée, car SELECT INTO n'est pas standard. En fait, cette forme de SELECT INTO n'est pas disponible en PL/pgSQL ou ecpg (1), car elle interprète la clause INTO différemment. |
SQL92 utilise SELECT ... INTO pour représenter la sélection des valeurs dans des variables scalaires d'un programme hôte, d'avantage que pour créer une nouvelle table. Ceci est l'usage que l'on trouve en PL/pgSQL et ecpg (1). L'usage de SELECT INTO dans Postgres pour représenter la création de table est historique. Il est mieux d'utiliser CREATE TABLE AS pour ce propos. (CREATE TABLE AS n'est pas standard, mais il prête moins à confusion).
| <<< Previous | Home | Next >>> |
| SELECT | Up | SET |