nom_latin
varchar(40)
NO UNI NULL
description
text
YES
NULL
prix
decimal(7,2) unsigned YES
NULL
Ensuite, pour remplir la nouvelle table avec tout ou partie des données de la table d'origine, il suffit d'utiliser la commande
INSERT INTO ... SELECT.
Exemple
Code : SQL
INSERT INTO Espece_copy
SELECT * FROM Espece
WHERE prix < 100;
SELECT id, nom_courant, prix
FROM Espece_copy;
id
nom_courant
prix
5 Rat brun
10.00
6 Perruche terrestre 20.00
Tables temporaires
Si l'on crée une table temporaire avec cette commande, tous les attributs de la table d'origine seront conservés, sauf les clés
étrangères, puisqu'on ne peut avoir de clé étrangère dans une table temporaire.
Exemple : copie de la table Animal
Code : SQL
CREATE TEMPORARY TABLE Animal_copy
LIKE Animal;
INSERT INTO Animal (nom, sexe, date_naissance, espece_id)
VALUES ('Mutant', 'M', NOW(), 12);
INSERT INTO Animal_copy (nom, sexe, date_naissance, espece_id)
VALUES ('Mutant', 'M', NOW(), 12);
Aucune espèce n'a 12 pour id , l'insertion dans Animal échoue donc à cause de la clé étrangère. Par contre, dans la table
temporaire Animal_copy, l'insertion réussit.
Si on crée une table sur la base d'une table temporaire, la nouvelle table n'est pas temporaire par défaut. Pour qu'elle le
soit, il faut obligatoirement le préciser à la création avec CREATE TEMPORARY TABLE.
Créer une table à partir de données sélectionnées
Cette seconde méthode ne se base pas sur la structure d'une table, mais sur les données récupérées par une requête SELECT
pour construire une table, et y insérer des données. On fait donc ici d'une pierre deux coups : création de la table et insertion de
données dans celle-ci.
Code : SQL
Partie 6 : Au-delà des tables classiques : vues, tables temporaires et vues matérialisées
358/414
www.openclassrooms.com
Précédent

- 358/413

Suivant