Maison > base de données > tutoriel mysql > Pourquoi MySQL génère-t-il une erreur « spécification de clé sans longueur de clé » avec les colonnes BLOB ou TEXT ?

Pourquoi MySQL génère-t-il une erreur « spécification de clé sans longueur de clé » avec les colonnes BLOB ou TEXT ?

Linda Hamilton
Libérer: 2025-01-19 23:42:11
original
809 Les gens l'ont consulté

Why Does MySQL Throw a

Dépannage de l'erreur "Spécification de clé sans longueur de clé" de MySQL

Cette erreur se produit généralement lorsqu'une colonne BLOB ou TEXT est utilisée dans une définition de clé primaire ou d'index sans spécifier de longueur de clé.

Comprendre le problème

Le mécanisme d'indexation de MySQL présente des limites avec les colonnes BLOB et TEXT en raison de leur longueur variable. La base de données ne peut pas garantir l'unicité sans une longueur définie, d'où l'erreur. Une longueur fixe est nécessaire pour une vérification appropriée de l'unicité de la clé.

Solutions

Plusieurs approches peuvent résoudre ce problème :

  • Supprimer BLOB/TEXT de la clé : La solution la plus simple consiste souvent à supprimer la colonne incriminée de la définition de clé. Identifiez un autre champ approprié pour une identification unique.
  • Utiliser une clé primaire différente : Si la colonne BLOB ou TEXT est cruciale pour l'unicité, choisissez une colonne différente comme clé primaire.
  • Utilisez VARCHAR avec restriction de longueur : Modifiez le type de colonne en VARCHAR(n), où « n » représente une limite de caractères spécifique (par exemple, VARCHAR(255)). Cela fournit des données de longueur variable avec une longueur maximale définie, adaptées à l'indexation.

Considérations importantes

  • Conservez les longueurs VARCHAR inférieures à 256 caractères. Le dépassement de cette limite convertit automatiquement la colonne en SMALLTEXT, réintroduisant potentiellement le problème de longueur de clé.
  • Pour plus de détails, consultez cette ressource : "Erreur MySQL 1170 (42000) : colonne BLOB/TEXT utilisée dans la spécification de clé sans longueur de clé"

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