14.2.5 Syntaxe de CREATE TABLE
14.2 Définition de données : CREATE , DROP , ALTER
14 Syntaxe des commandes SQL
Manuel de Référence MySQL 4.1 : Version Française
->Modification automatique du type de colonnes
|
14.2.5.1 Modification automatique du type de colonnes
Dans certains cas, MySQL change automatiquement la spécification d'une
colonne fournie dans la commande
CREATE TABLE
. (Cela peut aussi
arriver avec
ALTER TABLE
) :
-
Les colonnes
VARCHAR
avec une taille inférieure à quatre (4) sont
changées en
CHAR
.
-
Si l'une des colonnes d'une table est de taille variable, toute la ligne
est, par conséquent, de taille variable.
Ainsi, si une ligne contient une colonne de taille variable (
VARCHAR
,
TEXT
ou
BLOB
) toutes les colonnes
CHAR
de plus de trois
caractères sont transformées en
VARCHAR
.
Cela ne change en rien la façon dont vous utilisez les colonnes. Pour MySQL,
VARCHAR
est simplement une autre façon de stocker les caractères.
MySQL effectue cette conversion car cela économise de la place, et rend les
calculs sur les tables plus rapides. Types de tables MySQL .
-
Depuis la version 4.1.0, si un champ
CHAR
ou
VARCHAR
est spécifié
avec une taille supérieure à 255, il est converti en
TEXT
.
C'est une fonctionnalité de compatibilité.
-
La taille d'affichage de
TIMESTAMP
doit être un nombre pair et être
compris entre 2 et 14. (2, 4, 6, 8, 10, 12 ou 14).
Si vous spécifiez une taille plus grande que 14, ou inférieure à 2, celle-ci
sera transformée en 14. Les valeurs impaires sont ramenées à la valeur pair
supérieure la plus proche.
-
Vous ne pouvez pas stocker de valeur littérale
NULL
dans une colonne
de type
TIMESTAMP
. Cette valeur sera remplacée par la date et l'heure
courante. De ce fait, les attributs
NULL
et
NOT NULL
n'ont pas
de sens pour ces colonnes et sont ignorés.
DESCRIBE nom_de_table
indiquera toujours que la colonne
TIMESTAMP
accepte les valeurs
NULL
.
-
Les colonnes qui font partie d'une
PRIMARY KEY
ont l'attribut
NOT NULL
même si elles ne sont pas déclarées comme tel.
-
Depuis MySQL 3.23.51, les espaces terminaux sont automatiquement supprimés
des valeurs
ENUM
et
SET
lors de la création de la table.
-
MySQL change certains type de colonnes utilisés par d'autres serveurs SQL en types
MySQL. Utiliser les types de colonnes d'autres bases .
-
Si vous utilisez une clause
USING
pour spécifier un type d'index qui
n'est pas légal pour un moteur de stockage, mais qu'un autre type d'index
est disponible pour ce moteur sans affecter les résultats, le moteur utilisera
le type disponible.
Si vous voulez voir si MySQL a utilisé un autre type que celui que vous avez spécifié,
utilisez la commande
DESCRIBE nom_de_table
, après votre création ou modification
de structure de table.
Certain types de colonnes peuvent être modifiés si vous compressez une table en
utilisant l'utilitaire
myisampack
. Caractéristiques des tables compressées .
|