IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

Synopsis

CREATE [ [ GLOBAL | LOCAL ] { TEMPORARY | TEMP } ] TABLE nom_table
    [ (nom_colonne [, ...] ) ]
    [ WITH ( parametre_stockage [= valeur] [, ... ] ) | WITH OIDS | WITHOUT OIDS ]
    [ ON COMMIT { PRESERVE ROWS | DELETE ROWS | DROP } ]
    [ TABLESPACE espace_logique ]
    AS requête

Paramètres

GLOBAL ou LOCAL

Ignoré. Conservé pour la compatibilité (cf. CREATE TABLE).

TEMPORARY ou TEMP

Si spécifié, la table est temporaire (cf. CREATE TABLE).

nom_table

Le nom de la table à créer (éventuellement qualifié du nom du schéma).

nom_colonne

Le nom d'une colonne dans la nouvelle table. Si les noms de colonnes ne sont pas précisés, ils sont issus des noms des colonnes en sortie de la requête. Les noms des colonnes ne peuvent pas être précisés lorsque la table est créée à partir d'une commande EXECUTE .

WITH ( paramètre_stockage [= valeur ] [, ... ] )

Cette clause indique les paramètres de stockage optionnels pour la nouvelle table ; voir Paramètres de stockage pour plus d'informations. La clause WITH peut aussi inclure OIDS=TRUE (ou simplement OIDS) pour indiquer que les lignes de la nouvelle table doivent avoir des OID (identifiants d'objets) ou OIDS=FALSE pour indiquer le contraire. Voir CREATE TABLE pour plus d'informations.

WITH OIDS, WITHOUT OIDS

Ce sont les syntaxes obsolètes mais équivalentes, respectivement de WITH (OIDS) et WITH (OIDS=FALSE). Si vous souhaitez indiquer à la fois l'option OIDS et les paramètres de stockage, vous devez utiliser la syntaxe WITH ( ... ) ; voir ci-dessus.

ON COMMIT

Le comportement des tables temporaires à la fin d'un bloc de transaction est contrôlable en utilisant ON COMMIT. Voici les trois options :

PRESERVE ROWS

Aucune action spéciale n'est effectuée à la fin de la transaction. C'est le comportement par défaut.

DELETE ROWS

Toutes les lignes de la table temporaire seront supprimées à la fin de chaque bloc de transaction. Habituellement, un TRUNCATE automatique est effectué à chaque COMMIT.

DROP

La table temporaire sera supprimée à la fin du bloc de transaction en cours.

TABLESPACE espace_logique

L' espace_logique est le nom du tablespace dans lequel est créée la nouvelle table. S'il n'est pas indiqué, default_tablespace est utilisé. L'espace logique par défaut de la base est utilisé si default_tablespace est une chaîne vide.

requête

Une commande SELECT ou VALUES, voire une commande EXECUTE qui exécute un SELECT préparé ou une requête VALUES .

Notes

Cette commande est fonctionnellement équivalente à SELECT INTO. Elle lui est cependant préférée car elle présente moins de risques de confusion avec les autres utilisations de la syntaxe SELECT INTO . De plus, CREATE TABLE AS offre plus de fonctionnalités que SELECT INTO .

Avant PostgreSQL™ 8.0, CREATE TABLE AS incluait toujours les OIDs dans la table créée. À partir de PostgresSQL™ 8.0, la commande CREATE TABLE AS autorise l'utilisateur à spécifier explicitement la présence des OID. En l'absence de précision, la variable de configuration default_with_oids est utilisée. À partir de PostgreSQL™ 8.1, la valeur par défaut de cette variable est « faux » ; le comportement par défaut n'est donc pas identique à celui des versions précédant la 8.0. Il est préférable que les applications qui nécessitent des OID dans la table créée par CREATE TABLE AS indiquent explicitement WITH (OIDS) pour s'assurer du comportement souhaité.