Erreur MySQL : colonne BLOB/TEXT dans la spécification de clé sans longueur
Cet article traite de l'erreur MySQL courante : "Colonne BLOB/TEXT 'message_id' utilisée dans la spécification de clé sans longueur de clé." Cela se produit généralement lors de la modification de la clé primaire d'une table, par exemple en la changeant de varchar(255)
à text
. La cause première est l'exigence de MySQL concernant une longueur de clé lors de l'utilisation de colonnes BLOB ou TEXT dans des contraintes uniques ou des clés primaires.
Comprendre l'erreur
L'incapacité de MySQL à appliquer efficacement des contraintes de clé uniques sur les colonnes BLOB ou TEXT de longueur variable sans longueur de clé définie est le problème principal. L'absence de longueur rend la vérification de l'unicité difficile pour la base de données.
Résoudre l'erreur
Plusieurs approches peuvent résoudre ce problème :
Supprimer la colonne BLOB/TEXT de la clé : La solution la plus simple, si possible, consiste à supprimer la colonne TEXT
ou BLOB
de la clé primaire ou de la définition d'index unique.
Utilisez VARCHAR : Pensez à remplacer la colonne TEXT
ou BLOB
par VARCHAR
et à spécifier une longueur appropriée (jusqu'à 255 caractères). VARCHAR
offre de meilleures performances pour les contraintes clés.
Clé primaire alternative : Si la suppression ou la conversion de la colonne n'est pas une option, sélectionnez un champ différent comme clé primaire.
(Inefficace) ALTER TABLE
avec longueur : Bien que vous puissiez essayer d'utiliser ALTER TABLE
avec une longueur de clé pour les colonnes TEXT
ou BLOB
, cela n'est pas pris en charge par MySQL.
Remarques importantes
Longueur VARCHAR : Conservez la longueur des colonnes VARCHAR
inférieure à 256 caractères pour empêcher la conversion automatique de MySQL en SMALLTEXT
, ce qui déclenchera à nouveau l'erreur.
Autres types de colonnes : Cette erreur ne se limite pas aux colonnes TEXT
et BLOB
. Vérifiez à nouveau que les longueurs de clé de toutes les colonnes sont correctement spécifiées, en vous assurant notamment que les VARCHAR
longueurs ne dépassent pas 255.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!