 |

Dans certains cas, MySQL spontanément les spécifications d'une colonne lors d'une commande de CREATE TABLE (Cela peut aussi intervenir lors d'une commande with ALTER TABLE .)
- Les colonnes de type
VARCHAR d'une longueur de moins de 4 caractères sont changées en CHAR .
- Si l'une des colonne de la table a une longueur variable, alors la ligne complète a aussi une longueur variable. Par conséquent, si la table contient une colonne de longueur variable(
VARCHAR , TEXT or BLOB ), toutes les colonnes de type CHAR et de longueur supérieur à 3 caractères sont changées en colonne de type VARCHAR .Cela ne change en rien l'utilisation de ces colonnes, cela modifie simplement la façon dont les colonnes sont stockées. MySQL effectue cette conversion car cela économise de la place, et rend les opérations sur la table plus rapides.
- La taille d'affichage des colonnes de type
TIMESTAMP doit être pair et compris dans l'intervalle de 2 à 14. En dehors de l'intervalle 2 à 14, la taille de l'affichage est ramenée à 14. En cas de nombre impair, le nombre est arrondi au nombre pair directement supérieur.
- Il est impossible d'enregistrer une valeur
NULL dans une colonne de type TIMESTAMP , car une telle affectation revient à assigner la date et l'heure courante à la colonne. De ce fait, les attributs NULL et NOT NULL ne s'appliquent pas aux colonnes de type TIMESTAMP , et sont ignorés. Lors d'une requête DESCRIBE Nom_table MySQL répondra toujours que la colonne accepte les valeurs de type NULL .
- MySQL effectue la correspondance entre certains types utilisé par d'autres bases de données SQL vers des types MySQL. 7.2.11 Utiliser des types de colonnes d'autres bases de données.
Pour savoir si MySQL a modifié spontanément le type d'une colonne, il faut utiliser la requête DESCRIBE Nom_table après la création ou la modification de la table.
Certaines autres modifications de type peuvent intervenir lors de la compression de table avec la commande pack_isam .
10.17 Quel sont les différents formats de lignes? Quand utiliser VARCHAR/CHAR ?.
|