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. See
Chapitre 14, Moteurs de tables MySQL et types de table.
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. See Section 11.7, « Utilisation des types de données issues d'autres SGBDR ».
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
. See
Section 14.1.3.3, « Caractéristiques des tables compressées ».
This is a translation of the MySQL Reference Manual that can be found at dev.mysql.com. The original Reference Manual is in English, and this translation is not necessarily as up to date as the English version.