Recherche sur le blog

mercredi 8 août 2012

[SQL] Nouvelle table via un SELECT INTO

Pour certains, il pourrait s’agir d’un rappel de syntaxe, pour d’autres, et ce fut mon cas, ceci est plutôt une découverte. Lorsque vous souhaitez sauvegarder rapidement le contenu d’une table sans passer par un système complexe, il vous suffit d’utiliser une requête de type SELECT … INTO … FROM.
Voici la syntaxe pouvant être utilisée :
SELECT * | champ1, champ2… champ n
INTO nouvelle_table [IN base_externe]
FROM ancienne_table
  • Possibilité de reprendre toute la table ou une partie de celles-ci.
  • La base de données externe peut être une base Access par exemple.
  • Une jointure peut être faite dans le FROM et des conditions peuvent être ajoutées dans la clause WHERE (comme s’il s’agissait d’une requête tout à fait classique).
Certaines bases de données comme MySQL ne supportent pas la copie vers une table avec cette syntaxe. Par exemple, sous cette dernière, la clause SELECT INTO existe bel et bien, mais elle permet de générer un fichier en sortie ou de stocker le résultat dans des variables. Sous DB2/400, il est impossible d’exécuter ce type de requête en mode interactif.
En revanche, cette syntaxe est applicable dans Microsoft Access, puisqu’il est possible de générer la nouvelle table dans une base externe, comme il a été détaillé ci-dessus. On retrouve également cette fonctionnalité dans PostgreSQL. Dans Oracle, il est préférable d’utiliser l’instruction CREATE TABLE x AS SELECT. 

Sources
    
MySQL Select Into Outfile

Aucun commentaire: