comment appliquer plusieurs champs uniques dans la table de database

J'ai une table appelée Cars et la key primaire de la table est 'id'. J'ai aussi un champ appelé "nom". Je voudrais m'assurer que personne n'entrera deux fois le même nom, même s'il ne viendra pas à bout de mon intégrité.

Quelle est la meilleure façon de le faire?

create unique index cars_unique_name on cars(name) 

Créez simplement un index UNIQUE dans le champ de name . En SQL ce serait quelque chose comme ceci:

 CREATE UNIQUE INDEX IX_Cars_name ON Cars(name); 

Une autre possibilité est de créer une unique constraint , comme ceci:

 ALTER TABLE Cars ADD CONSTRAINT Uqc_Cars_name UNIQUE (name) 

Les deux feront essentiellement la même chose.

vous pouvez spécifier la contrainte d'index unique à la fois dans la command CREATE TABLE ou la command ALTER TABLE.

C'est comme

CREATE TABLE CARS (ID INT NON NULL AUTO_INCREMENT PRIMARY KEY, nom VARCHAR (100) CLE UNIQUE);

ou créez simplement le tableau ci-dessus

CREATE TABLE CARS (ID INT NON NULL AUTO_INCREMENT PRIMARY KEY, nom VARCHAR (100)); et plus tard, append l'index de key unqiue en utilisant alter table

Comme mentionné, vous voudrez probablement un index unique, mais il est aussi possible d'utiliser une contrainte unique, sans indice qui pourrait être souhaitable dans certaines situations …

 CREATE TABLE cars ( ID INT NOT NULL IDENTITY(1,1) PRIMARY KEY CLUSTERED, NAME NVARCHAR(100) UNIQUE NOT NULL ) 

ou

 ALTER TABLE cars ADD CONSTRAINT UniqueConstraintName UNIQUE (name)