race_id
smallint(6) unsigned YES
NULL
mere_id
smallint(6) unsigned YES
NULL
pere_id
smallint(6) unsigned YES
NULL
disponible
tinyint(1)
YES
1
Les types de colonnes et les contraintes NOT NULL sont les mêmes, mais les index ont disparu, ainsi que l'auto-incrémentation.
Forcer le type des colonnes
On peut laisser MySQL déduire le type des colonnes du SELECT, mais il est également possible de préciser le type que l'on
désire, en faisant attention à la compatibilité entre les types que l'on précise et les colonnes sélectionnées.
On peut également préciser les index désirés, les clés et l'éventuelle colonne à auto-incrémenter.
La syntaxe est alors similaire à un CREATE [TEMPORARY] TABLE classique, si ce n'est qu'on rajoute une requête de
sélection à la suite.
Exemple : recréation d'Animal_copy, en modifiant quelques types et attributs.
Code : SQL
DROP TABLE Animal_copy;
CREATE TEMPORARY TABLE Animal_copy (
id INT UNSIGNED PRIMARY KEY AUTO_INCREMENT,
sexe CHAR(1),
date_naissance DATETIME,
nom VARCHAR(100),
commentaires TEXT,
espece_id INT NOT NULL,
race_id INT,
mere_id INT,
pere_id INT,
disponible BOOLEAN DEFAULT TRUE,
INDEX (nom(10))
) ENGINE=InnoDB
SELECT *
FROM Animal
WHERE espece_id = 5;
DESCRIBE Animal_copy;
Field
Type
Null Key Default
Extra
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
int(11)
YES
NULL
pere_id
int(11)
YES
NULL
disponible
tinyint(1)
YES
1
Partie 6 : Au-delà des tables classiques : vues, tables temporaires et vues matérialisées
360/414
www.openclassrooms.com
smallint(6) unsigned YES
NULL
mere_id
smallint(6) unsigned YES
NULL
pere_id
smallint(6) unsigned YES
NULL
disponible
tinyint(1)
YES
1
Les types de colonnes et les contraintes NOT NULL sont les mêmes, mais les index ont disparu, ainsi que l'auto-incrémentation.
Forcer le type des colonnes
On peut laisser MySQL déduire le type des colonnes du SELECT, mais il est également possible de préciser le type que l'on
désire, en faisant attention à la compatibilité entre les types que l'on précise et les colonnes sélectionnées.
On peut également préciser les index désirés, les clés et l'éventuelle colonne à auto-incrémenter.
La syntaxe est alors similaire à un CREATE [TEMPORARY] TABLE classique, si ce n'est qu'on rajoute une requête de
sélection à la suite.
Exemple : recréation d'Animal_copy, en modifiant quelques types et attributs.
Code : SQL
DROP TABLE Animal_copy;
CREATE TEMPORARY TABLE Animal_copy (
id INT UNSIGNED PRIMARY KEY AUTO_INCREMENT,
sexe CHAR(1),
date_naissance DATETIME,
nom VARCHAR(100),
commentaires TEXT,
espece_id INT NOT NULL,
race_id INT,
mere_id INT,
pere_id INT,
disponible BOOLEAN DEFAULT TRUE,
INDEX (nom(10))
) ENGINE=InnoDB
SELECT *
FROM Animal
WHERE espece_id = 5;
DESCRIBE Animal_copy;
Field
Type
Null Key Default
Extra
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
int(11)
YES
NULL
pere_id
int(11)
YES
NULL
disponible
tinyint(1)
YES
1
Partie 6 : Au-delà des tables classiques : vues, tables temporaires et vues matérialisées
360/414
www.openclassrooms.com
