Heim > Datenbank > MySQL-Tutorial > Warum gibt MySQL den Fehler „In der Schlüsselspezifikation verwendete BLOB/TEXT-Spalte ohne Schlüssellänge' aus?

Warum gibt MySQL den Fehler „In der Schlüsselspezifikation verwendete BLOB/TEXT-Spalte ohne Schlüssellänge' aus?

Mary-Kate Olsen
Freigeben: 2025-01-19 23:32:15
Original
1003 Leute haben es durchsucht

Why Does MySQL Throw a

MySQL-Datenbankfehler: Verwendung der BLOB/TEXT-Spalte ohne Schlüssellänge in der Schlüsselspezifikation

Wenn Sie auf den Fehler „Verwendung der BLOB/TEXT-Spalte ‚message_id‘ in der Schlüsselspezifikation ohne Schlüssellänge“ stoßen, liegt das daran, dass MySQL nicht die gesamte Länge der BLOB- oder TEXT-Spalte indizieren kann. Diese Spalten erfordern eine bestimmte Schlüssellänge, um die Eindeutigkeit sicherzustellen.

Fehlergrund

Dieser Fehler tritt hauptsächlich auf, wenn TEXT- oder BLOB-Typen (einschließlich TINYBLOB, MEDIUMBLOB, LONGBLOB, TINYTEXT, MEDIUMTEXT und LONGTEXT) als Primärschlüssel angegeben oder für die Indizierung ohne Angabe der Schlüssellänge verwendet werden.

Lösung

Um dieses Problem zu beheben, gibt es mehrere Möglichkeiten:

  • TEXT/BLOB-Spalte aus Schlüssel entfernen: Ersetzen Sie sie durch eine andere indizierbare Spalte.
  • Primärschlüssel für anderes Feld festlegen: Wenn ein geeignetes Feld vorhanden ist, verwenden Sie es stattdessen als Primärschlüssel.
  • Spaltenlänge begrenzen: Konvertieren Sie die Spalte in VARCHAR(n) und geben Sie die maximale Länge an. VARCHAR hat standardmäßig eine maximale Länge von 255 Zeichen.

Andere Hinweise

  • Falsche VARCHAR-Länge: Stellen Sie sicher, dass die Länge der VARCHAR-Spalte 255 Zeichen nicht überschreitet, sonst konvertiert MySQL sie in den TEXT-Typ und verursacht denselben Fehler.
  • Vorhandene Einschränkungen: Beim Ändern von Spaltentypen können Probleme auftreten, wenn eine TEXT- oder BLOB-Spalte Teil einer vorhandenen eindeutigen Einschränkung oder eines Index ist.

Referenz

Das obige ist der detaillierte Inhalt vonWarum gibt MySQL den Fehler „In der Schlüsselspezifikation verwendete BLOB/TEXT-Spalte ohne Schlüssellänge' aus?. 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