Heim >Datenbank >MySQL-Tutorial >Warum gibt MySQL bei BLOB- oder TEXT-Spalten den Fehler „Schlüsselspezifikation ohne Schlüssellänge' aus?
Fehlerbehebung beim MySQL-Fehler „Schlüsselspezifikation ohne Schlüssellänge“
Dieser Fehler tritt normalerweise auf, wenn eine BLOB- oder TEXT-Spalte in einer Primärschlüssel- oder Indexdefinition verwendet wird, ohne eine Schlüssellänge anzugeben.
Das Problem verstehen
Der Indizierungsmechanismus von MySQL weist aufgrund ihrer variablen Länge Einschränkungen bei BLOB- und TEXT-Spalten auf. Ohne eine definierte Länge kann die Datenbank keine Eindeutigkeit garantieren, daher der Fehler. Für eine ordnungsgemäße Überprüfung der Eindeutigkeit des Schlüssels ist eine feste Länge erforderlich.
Lösungen
Mehrere Ansätze können dieses Problem lösen:
VARCHAR(n)
, wobei „n“ eine bestimmte Zeichenbeschränkung darstellt (z. B. VARCHAR(255)
). Dadurch werden Daten variabler Länge mit einer definierten Maximallänge bereitgestellt, die für die Indizierung geeignet sind.Wichtige Überlegungen
VARCHAR
Längen unter 256 Zeichen. Bei Überschreitung dieses Grenzwerts wird die Spalte automatisch in SMALLTEXT
konvertiert, wodurch möglicherweise das Problem mit der Schlüssellänge erneut auftritt.Das obige ist der detaillierte Inhalt vonWarum gibt MySQL bei BLOB- oder TEXT-Spalten den Fehler „Schlüsselspezifikation ohne Schlüssellänge' aus?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!