CREATE TABLE AS

Nom

CREATE TABLE AS -- crée une nouvelle table à partir des résultats d'une requête

Synopsis

CREATE [ [ GLOBAL | LOCAL ] { TEMPORARY | TEMP } ] TABLE
nom_table [
(nom_colonne [, ...] ) ]
    AS requête

Description

CREATE TABLE AS crée une table et la remplit avec des données récupérées par une commande SELECT ou un EXECUTE qui lance une commande préparée SELECT. Les colonnes de table ont les noms et les types de données associés avec les colonnes en sortie du SELECT (sauf que vous pouvez surcharger les noms de colonne en donnant une liste explicite des nouveaux noms de colonnes).

CREATE TABLE AS a une certaine ressemblance pour créer une vue mais elle est réellement assez différente : il crée une nouvelle table et évalue la requête juste une fois pour remplir la nouvelle table initialement. La nouvelle table ne tracera pas les changements suivants pour les tables source de la requête. En contraste, une vue ré-évalue son instruction SELECT à chaque fois qu'elle est appelée.

Paramètres

TEMPORARY ou TEMP

Si spécifié, la table est créée comme une table temporaire. Référez-vous à CREATE TABLE pour plus de détails.

nom_table

Le nom de la table à créer (pouvant être qualifié avec le nom du schéma).

nom_colonne

Le nom d'une colonne dans une nouvelle table. Si les noms de colonnes ne sont pas fournis, ils sont pris des noms de colonnes en sortie de la requête. Si la table est créée à partir d'une commande EXECUTE, une liste de noms de colonnes peut ne pas être spécifiée.

requête

Une instruction de requête (c'est-à-dire une commande SELECT ou une commande EXECUTE qui exécute une commande SELECT préparée). Référez-vous à SELECT ou EXECUTE, respectivement pour une description de la syntaxe autorisée.

Notes

Cette commande est équivalente fonctionnellement à SELECT INTO mais elle est préférée car il y a moins de risque de confusion avec les autres utilisations de la syntaxe SELECT ... INTO.

Compatibilité

Cette commande est modelée en suivant une fonctionnalité Oracle. Il n'existe pas de commande avec des fonctionnalités équivalentes dans le standard SQL. Néanmoins, une combinaison de CREATE TABLE et INSERT ... SELECT peut accomplir la même chose avec un effort un peu plus important.

Voir aussi

CREATE TABLE, CREATE VIEW, EXECUTE, SELECT, SELECT INTO