Les colonnes id , espece_id , race_id , mere_id et pere_id ne sont plus des SMALLINT mais des INT, et seul id est
UNSIGNED. Par contre, on a bien un index sur nom, et une clé primaire auto-incrémentée avec id . On n'a pas précisé de
contrainte NOT NULL sur date_naissance, donc il n'y en a pas, bien que cette contrainte existe dans la table d'origine.
Nom des colonnes
Les noms des colonnes de la table créée correspondront aux noms des colonnes dans la requête SELECT. Il est bien sûr
possible d'utiliser les alias dans celle-ci pour renommer une colonne.
Cela implique que lorsque vous forcez le type des colonnes comme on vient de le voir, il est impératif que vos noms de colonnes
correspondent à ceux de la requête SELECT, car l'insertion des données dans leurs colonnes respectives se fera sur la base du
nom, et pas sur la base de la position.
Exemple : on recrée Animal_copy, mais les noms des colonnes sont dans le désordre, et certains ne correspondent pas à la
requête SELECT.
Code : SQL
DROP TABLE Animal_copy;
CREATE TEMPORARY TABLE Animal_copy (
id INT UNSIGNED PRIMARY KEY AUTO_INCREMENT,
nom VARCHAR(100),
-- Ordre différent
de la requête SELECT
sexe CHAR(1),
espece_id INT NOT NULL,
-- Ordre différent
de la requête SELECT
date_naissance DATETIME,
commentaires TEXT,
race_id INT,
maman_id INT,
-- Nom de colonne
différent de la requête SELECT
papa_id INT,
-- Nom de colonne
différent de la requête SELECT
disponible BOOLEAN DEFAULT TRUE,
INDEX (nom(10))
) ENGINE=InnoDB
SELECT id, sexe, date_naissance, nom, commentaires, espece_id,
race_id, mere_id, pere_id, disponible
FROM Animal
WHERE espece_id = 5;
DESCRIBE Animal_copy;
Field
Type
Null Key Default
Extra
maman_id
int(11)
YES
NULL
papa_id
int(11)
YES
NULL
id
int(10) unsigned
NO PRI
NULL auto_increment
sexe
char(1)
YES
NULL
date_naissance datetime
YES
NULL
nom
varchar(100)
YES MUL NULL
commentaires
text
YES
NULL
espece_id
int(11)
NO
NULL
race_id
int(11)
YES
NULL
mere_id
smallint(6) unsigned YES
NULL
pere_id
smallint(6) unsigned YES
NULL
Partie 6 : Au-delà des tables classiques : vues, tables temporaires et vues matérialisées
361/414
www.openclassrooms.com
Précédent

- 361/413

Suivant