Heim >Datenbank >MySQL-Tutorial >Warum schlägt mein eindeutiger Index mit „Ungültiger Schlüsselspaltentyp' fehl?

Warum schlägt mein eindeutiger Index mit „Ungültiger Schlüsselspaltentyp' fehl?

DDD
DDDOriginal
2024-12-27 02:25:13253Durchsuche

Why is my Unique Index Failing with

Adressierungsdatenbankfehler: Ungültiger Schlüsselspaltentyp für Index

Beim Erstellen eines eindeutigen Index für eine Tabelle kann der Fehler „Spalte ‚[Schlüssel]‘ in“ auftreten Tabelle „[Tabelle]“ ist von einem Typ, der für die Verwendung als Schlüsselspalte in einem Index ungültig ist.“ Dieser Fehler tritt normalerweise auf, wenn der Datentyp der für den Index angegebenen Spalte zu groß ist.

Behebung des Problems

Die typische Ursache für diesen Fehler ist ein Indexschlüssel mit einer maximalen Länge, die größer ist die zulässige Grenze. In Microsoft SQL Server beträgt die maximale Länge für einen Indexschlüssel 900 Byte.

Um dieses Problem zu beheben, sollten Sie die maximale Länge der Schlüsselspalte reduzieren. In Ihrem Fall ist die Schlüsselspalte als nvarchar(max) definiert, was eine unbegrenzte Länge ermöglicht. Für Indexschlüssel ist es ratsam, einen begrenzten Datentyp wie nvarchar(450) zu verwenden, der sicherstellt, dass die Länge des Indexschlüssels innerhalb der zulässigen Grenzen liegt.

Hier ist eine aktualisierte Tabellendefinition, bei der die Schlüsselspalte auf 450 begrenzt ist Zeichen:

CREATE TABLE [misc_info] (
    [id] INTEGER PRIMARY KEY IDENTITY NOT NULL, 
    [key] NVARCHAR(450) UNIQUE NOT NULL, 
    [value] NVARCHAR(MAX) NOT NULL
);

Durch diese Anpassung stellen Sie sicher, dass die Schlüsselspalte die Größenanforderungen für erfüllt einen Indexschlüssel, der den Fehler behebt.

Das obige ist der detaillierte Inhalt vonWarum schlägt mein eindeutiger Index mit „Ungültiger Schlüsselspaltentyp' 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