Heim >Datenbank >MySQL-Tutorial >Warum schlägt mein SQL-Index aufgrund von Einschränkungen der Schlüsselspaltenlänge fehl?

Warum schlägt mein SQL-Index aufgrund von Einschränkungen der Schlüsselspaltenlänge fehl?

Susan Sarandon
Susan SarandonOriginal
2024-12-22 05:32:14993Durchsuche

Why is my SQL Index Failing Due to Key Column Length Limitations?

Beschränkung der Schlüsselspaltenindexlänge in SQL

Die Fehlermeldung „Spalte ‚Schlüssel‘ in Tabelle ‚misc_info‘ ist von einem solchen Typ „ungültig für die Verwendung als Schlüsselspalte in einem Index“ zeigt an, dass die Länge der Schlüsselspalte die maximal zulässige Länge für einen Index überschreitet.

Die maximale Länge eines Die Indexspalte hängt vom verwendeten Datentyp ab. Für den Datentyp nvarchar beträgt die maximale Länge 450 Zeichen. Dies liegt daran, dass eine eindeutige Einschränkung für Nvarchar-Spalten 8000 Byte pro Zeile nicht überschreiten darf und nur die ersten 900 Byte verwendet werden.

Um dieses Problem zu beheben, reduzieren Sie die Länge der Schlüsselspalte auf maximal 450 Charaktere. Die folgende modifizierte SQL-Anweisung erstellt eine Tabelle mit einer Schlüsselspalte von nvarchar(450):

create table [misc_info]
(
    [id] INTEGER PRIMARY KEY IDENTITY NOT NULL,
    [key] nvarchar(450) UNIQUE NOT NULL,
    [value] nvarchar(max) NOT NULL
);

Erwägen Sie nach Möglichkeit den Wechsel zu varchar anstelle von nvarchar, wodurch die maximale Länge auf 900 Zeichen erhöht werden kann.

Das obige ist der detaillierte Inhalt vonWarum schlägt mein SQL-Index aufgrund von Einschränkungen der Schlüsselspaltenlänge fehl?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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