Maison > base de données > tutoriel mysql > le corps du texte

Comment ajouter un index unique dans MySQL

青灯夜游
Libérer: 2022-06-20 18:50:20
original
21125 Les gens l'ont consulté

Trois façons d'ajouter : 1. Utilisez l'instruction "CREATE INDEX" pour ajouter, la syntaxe est "CREATE UNIQUE INDEX nom d'index SUR le nom de la table (liste des noms de colonnes) ;" 2. Ajoutez lors de la création d'une table, la syntaxe est "CREATE TABLE nom de table (. .. UNIQUE KEY (liste de noms de colonnes));"; 3. Ajouté lors de la modification de la table, la syntaxe "ALTER TABLE nom de table ADD CONSTRAINT nom d'index UNIQUE KEY (liste de noms de colonnes);".

Comment ajouter un index unique dans MySQL

L'environnement d'exploitation de ce tutoriel : système windows7, version mysql8, ordinateur Dell G3.

index unique mysql (UNIQUE)

Pour imposer des valeurs uniques pour une ou plusieurs colonnes, une contrainte PRIMARY KEY est généralement utilisée. Cependant, chaque table ne peut avoir qu’une seule clé primaire. Par conséquent, vous ne pouvez pas utiliser de contraintes de clé primaire si vous souhaitez inclure plusieurs colonnes ou un ensemble de colonnes avec des valeurs uniques.

Heureusement, MySQL fournit un autre index appelé index UNIQUE qui vous permet d'imposer des valeurs pour qu'elles soient uniques à une ou plusieurs colonnes. Contrairement aux index PRIMARY KEY, UNIQUE peut avoir plusieurs index par table.

Pour créer un index UNIQUE, utilisez le <span style="background-color: rgb(255, 255, 255); color: rgb(68, 68, 68); font-family: " helvetica neue microsoft yahei arial sans-serif>CREATE INDEX<code><span style="background-color: rgb(255, 255, 255); color: rgb(68, 68, 68); font-family: " helvetica neue yahei arial sans-serif>CREATE INDEX</span>Déclaration :

CREATE UNIQUE INDEX 索引名
ON 表名(列名1,列名2,...);
Copier après la connexion

Une autre façon d'imposer l'unicité des valeurs dans une ou plusieurs colonnes consiste à utiliser UNIQUE contraintes.

Lorsque vous créez une contrainte UNIQUE, MySQL créera UNIQUE l'index en arrière-plan.

Les déclarations suivantes illustrent comment créer une contrainte unique lors de la création d'une table.

CREATE TABLE 表名(
...
   UNIQUE KEY(列名1,列名2,...) 
);
Copier après la connexion

Vous pouvez également ajouter un index unique (UNIQUE) à une table existante à l'aide de l'instruction ALTER TABLE

ALTER TABLE 表名
ADD CONSTRAINT 索引名 UNIQUE KEY(列名1,列名2,...);
Copier après la connexion

Exemple d'index MySQL UNIQUE

Supposons que vous souhaitiez gérer les contacts dans votre application. Vous souhaitez également que l'e-mail de chaque contact du tableau des contacts soit unique.

Pour appliquer cette règle, créez une contrainte unique dans l'instruction CREATE TABLE comme suit :

CREATE TABLE IF NOT EXISTS contacts (
    id INT AUTO_INCREMENT PRIMARY KEY,
    first_name VARCHAR(50) NOT NULL,
    last_name VARCHAR(50) NOT NULL,
    phone VARCHAR(15) NOT NULL,
    email VARCHAR(100) NOT NULL,
    UNIQUE KEY unique_email (email)
);
Copier après la connexion

Comment ajouter un index unique dans MySQL

Si vous utilisez l'instruction SHOW INDEXES, vous verrez que MySQL UNIQUE crée un index pour la colonne email.

SHOW INDEXES FROM contacts;
Copier après la connexion

Comment ajouter un index unique dans MySQL

Insérons une ligne dans le tableau des contacts.

INSERT INTO contacts(first_name,last_name,phone,email)
VALUES(&#39;John&#39;,&#39;Doe&#39;,&#39;(408)-999-9765&#39;,&#39;john.doe@mysqltutorial.org&#39;);
Copier après la connexion

Comment ajouter un index unique dans MySQL

Maintenant, si vous essayez d'insérer la ligne où leur e-mail est john.doe@mysqltutorial.org, vous recevrez un message d'erreur.

INSERT INTO contacts(first_name,last_name,phone,email)
VALUES(&#39;Johny&#39;,&#39;Doe&#39;,&#39;(408)-999-4321&#39;,&#39;john.doe@mysqltutorial.org&#39;);
Copier après la connexion
ERROR 1062 (23000): Duplicate entry &#39;john.doe@mysqltutorial.org&#39; for key &#39;unique_email&#39;
Copier après la connexion

Comment ajouter un index unique dans MySQL

En supposant que vous souhaitiez que la combinaison du prénom, du nom et du téléphone soit également unique parmi les contacts. Dans ce cas, vous pouvez créer des index pour ces colonnes à l'aide de l'instruction CREATE INDEX UNIQUE comme suit :

CREATE UNIQUE INDEX idx_name_phone
ON contacts(first_name,last_name,phone);
Copier après la connexion

Ajoutez la ligne suivante aux contacts car la combinaison des tables provoquera une erreur prénom, nom et téléphone existent déjà.

INSERT INTO contacts(first_name,last_name,phone,email)
VALUES(&#39;john&#39;,&#39;doe&#39;,&#39;(408)-999-9765&#39;,&#39;john.d@mysqltutorial.org&#39;);
Copier après la connexion
rrree

【Recommandations associées : tutoriel vidéo mysql

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!

Étiquettes associées:
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