Maison > base de données > tutoriel mysql > Pourquoi ne puis-je pas créer un index unique sur ma colonne nvarchar(max) dans SQL Server ?

Pourquoi ne puis-je pas créer un index unique sur ma colonne nvarchar(max) dans SQL Server ?

DDD
Libérer: 2024-12-19 03:42:08
original
912 Les gens l'ont consulté

Why Can't I Create a Unique Index on My nvarchar(max) Column in SQL Server?

Type de colonne de clé d'index non valide : "est d'un type qui n'est pas valide pour être utilisé comme colonne de clé dans un index"

Dans le Dans le contexte des systèmes de gestion de bases de données relationnelles, un message d'erreur indiquant "La colonne 'clé' dans la table 'misc_info' est d'un type qui n'est pas valide pour être utilisée comme colonne clé dans un index" apparaît lors de la tentative de création d'un index unique sur une colonne d'un type de données spécifique.

Contexte du problème :

Le message d'erreur fourni souligne qu'une tentative de création d'un index unique sur une colonne nommée "key" dans la table "misc_info" a échoué. Le type de données de la colonne, nvarchar(max), est incompatible avec l'utilisation comme clé d'index, ce qui entraîne l'erreur.

Solution :

Les index uniques imposent des limitations sur la taille des valeurs qu'ils peuvent stocker sous forme de clés. Pour le type de données nvarchar, qui peut contenir une chaîne de longueur variable, la longueur maximale autorisée pour les clés d'index est de 450 caractères. Cette limitation constitue une protection contre le dépassement de la contrainte de taille de ligne de 8 000 octets imposée par SQL Server.

Pour résoudre l'erreur, réduisez la longueur maximale de la colonne "clé" à 450 caractères. Ceci peut être réalisé en modifiant la définition de la table comme suit :

ALTER TABLE misc_info ALTER COLUMN key nvarchar(450) UNIQUE NOT NULL;
Copier après la connexion

Alternativement, si l'exigence est de stocker des chaînes de plus de 450 caractères, envisagez d'utiliser le type de données varchar au lieu de nvarchar. Varchar a une limite de longueur maximale de 8 000 caractères, offrant plus de flexibilité pour stocker des clés plus longues tout en conservant la contrainte d'index unique.

ALTER TABLE misc_info ALTER COLUMN key varchar(8000) UNIQUE NOT NULL;
Copier après la connexion

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal