Définition de données : CREATE , DROP , ALTER
<<<
Modification automatique du type de colonnes Définition de données : CREATE , DROP , ALTER
>>>

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 .

<< Modification automatique du type de colonnes >>
Définition de données : CREATE , DROP , ALTER Syntaxe de CREATE TABLE Définition de données : CREATE , DROP , ALTER