Heim > Datenbank > MySQL-Tutorial > Wie behebe ich den MySQL-Fehler „BLOB/TEXT-Spalte wird in der Schlüsselspezifikation ohne Schlüssellänge verwendet'?

Wie behebe ich den MySQL-Fehler „BLOB/TEXT-Spalte wird in der Schlüsselspezifikation ohne Schlüssellänge verwendet'?

Linda Hamilton
Freigeben: 2025-01-19 23:36:10
Original
562 Leute haben es durchsucht

How to Resolve MySQL's

Fehlerbehebung bei BLOB/TEXT-Schlüsselspezifikationsfehlern von MySQL

Das Definieren von Primärschlüsseln oder Indizes für MySQL-Tabellen, die BLOB- oder TEXT-Spalten enthalten, führt häufig zu folgendem Fehler:

<code>BLOB/TEXT column 'message_id' used in key specification without a key length</code>
Nach dem Login kopieren

Dieser Fehler tritt auf, weil MySQL-Indizes Datentypen fester Länge erfordern. Da BLOB- und TEXT-Spalten variable Längen haben, ist eine Angabe der Schlüssellänge zur Bestimmung der Indexgröße erforderlich. Die direkte Angabe einer Schlüssellänge für BLOB/TEXT wird jedoch nicht unterstützt.

Lösungsstrategien:

Mehrere Ansätze können diese Einschränkung beheben:

  • BLOB/TEXT aus Schlüssel/Index ausschließen: Die einfachste Lösung besteht darin, die BLOB- oder TEXT-Spalte aus der Primärschlüssel- oder Indexdefinition zu entfernen.
  • VARCHAR-Spalten verwenden: Ersetzen Sie BLOB/TEXT durch VARCHAR-Spalten und geben Sie eine maximale Länge an. Halten Sie diese Länge unbedingt unter 256 Zeichen, um eine automatische Konvertierung in SMALLTEXT zu vermeiden, die mit Schlüsseln nicht kompatibel ist.
  • Verwenden Sie zusammengesetzte Schlüssel: Erstellen Sie für eindeutige Bezeichner, die die Kapazität eines einzelnen VARCHAR überschreiten, einen zusammengesetzten Schlüssel mit mehreren Spalten.

Weitere Überlegungen:

Der Fehler „Schlüsselspezifikation ohne Schlüssellänge“ kann auch ohne direkte Beteiligung der BLOB-/TEXT-Spalte auftreten. Dies geschieht, wenn die Länge eines VARCHAR-Schlüssels 255 Zeichen überschreitet, was eine implizite Konvertierung in SMALLTEXT auslöst.

Um dies zu vermeiden, stellen Sie sicher, dass alle in Schlüsseln verwendeten VARCHAR-Spalten eine maximale Länge von weniger als 255 Zeichen haben.

Das obige ist der detaillierte Inhalt vonWie behebe ich den MySQL-Fehler „BLOB/TEXT-Spalte wird in der Schlüsselspezifikation ohne Schlüssellänge verwendet'?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage