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.
