Maison > base de données > tutoriel mysql > Pourquoi MySQL génère-t-il une erreur « Colonne BLOB/TEXT utilisée dans la spécification de clé sans longueur de clé » ?

Pourquoi MySQL génère-t-il une erreur « Colonne BLOB/TEXT utilisée dans la spécification de clé sans longueur de clé » ?

Mary-Kate Olsen
Libérer: 2025-01-19 23:32:15
original
991 Les gens l'ont consulté

Why Does MySQL Throw a

Erreur de base de données MySQL : utilisation d'une colonne BLOB/TEXT sans longueur de clé dans la spécification de clé

Lorsque vous rencontrez l'erreur « Utilisation de la colonne BLOB/TEXT 'message_id' dans la spécification de clé sans longueur de clé », c'est parce que MySQL ne peut pas indexer toute la longueur de la colonne BLOB ou TEXT. Ces colonnes nécessitent une longueur de clé spécifiée pour garantir l'unicité.

Raison de l'erreur

Cette erreur se produit principalement lorsque les types TEXT ou BLOB (y compris TINYBLOB, MEDIUMBLOB, LONGBLOB, TINYTEXT, MEDIUMTEXT et LONGTEXT) sont spécifiés comme clé primaire ou utilisés pour l'indexation sans spécifier la longueur de la clé.

Solution

Pour résoudre ce problème, il existe plusieurs manières :

  • Supprimer la colonne TEXT/BLOB de la clé : Remplacez-la par une autre colonne indexable.
  • Définir la clé primaire sur un champ différent : Si un champ approprié existe, utilisez-le plutôt comme clé primaire.
  • Limiter la longueur de la colonne : convertissez la colonne en VARCHAR(n) et spécifiez la longueur maximale. VARCHAR a une longueur maximale de 255 caractères par défaut.

Autres notes

  • Longueur VARCHAR incorrecte : Assurez-vous que la longueur de la colonne VARCHAR ne dépasse pas 255 caractères, sinon MySQL la convertira en type TEXT, provoquant la même erreur.
  • Contraintes existantes : des problèmes peuvent survenir lors de la modification des types de colonnes si une colonne TEXT ou BLOB fait partie d'une contrainte ou d'un index unique existant.

Référence

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal