Fehlerbehebung bei MySQL-Fehler: BLOB/TEXT-Spalte in der Schlüsselspezifikation
Diese Anleitung behebt den MySQL-Fehler „BLOB/TEXT-Spalte ‚message_id‘ wird in der Schlüsselspezifikation ohne Schlüssellänge verwendet.“ Dieser Fehler tritt auf, wenn eine BLOB- oder TEXT-Spalte in einem Primärschlüssel oder Index ohne Angabe einer Länge verwendet wird.
Das Problem ergibt sich aus der variablen Länge der Datentypen BLOB und TEXT. Ohne eine definierte Größenbeschränkung kann MySQL keine Eindeutigkeit garantieren. Daher muss bei der Indizierung oder Verwendung dieser Typen als Primärschlüssel eine Schlüssellänge angegeben werden.
MySQL erlaubt jedoch keine Schlüssellängenbeschränkungen für TEXT- oder BLOB-Felder. Die Lösung besteht darin, entweder die BLOB- oder TEXT-Spalte aus dem Index oder Primärschlüssel zu entfernen oder eine andere Spalte als Primärschlüssel auszuwählen.
Wenn Sie die Größe der TEXT- oder BLOB-Spalte einschränken möchten, sollten Sie stattdessen VARCHAR
verwenden. Geben Sie die maximale Länge in Klammern an; Beispielsweise begrenzt VARCHAR(255)
die Spalte auf 255 Zeichen.
Auch ohne BLOB- oder TEXT-Spalten kann der Fehler aufgrund von Problemen mit der VARCHAR
Spaltenlänge bestehen bleiben. VARCHAR
hat eine maximale Länge von 255 Zeichen. Wenn Sie eine zu große Länge angegeben haben (wie VARCHAR(512)
), konvertiert MySQL diese möglicherweise automatisch in SMALLTEXT
, was den Fehler verursacht. Stellen Sie sicher, dass Ihre VARCHAR
Feldgröße weniger als 256 Zeichen beträgt.
Ausführlichere Informationen zum MySQL-Fehler 1170, insbesondere zu TEXT/BLOB-Typen in Schlüsseln und Primärschlüsseln, finden Sie in der referenzierten Dokumentation.
Das obige ist der detaillierte Inhalt vonWie behebt man 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!