Maison  >  Article  >  base de données  >  Comment ajouter une contrainte unique dans MySQL ?

Comment ajouter une contrainte unique dans MySQL ?

青灯夜游
青灯夜游original
2020-10-13 17:13:5127956parcourir

Méthode : 1. Lors de la création d'une table, utilisez l'instruction "CREATE TABLE table name (field name data type UNIQUE);" 2. Lors de la modification de la table, utilisez "ALTER TABLE table name ADD CONSTRAINT" nom de contrainte unique UNIQUE (nom de la colonne);" instruction à ajouter.

Comment ajouter une contrainte unique dans MySQL ?

(Tutoriel recommandé : Tutoriel vidéo MySQL)

La contrainte unique MySQL (Unique Key) fait référence à la clé unique dans tous les enregistrements La valeur du champ ne peut pas apparaître de manière répétée. Par exemple, après avoir ajouté une contrainte unique au champ id, la valeur id de chaque enregistrement est unique et ne peut pas être répétée. Si la valeur d'identifiant de l'un des enregistrements est « 0001 », alors il ne peut pas y avoir d'autre enregistrement avec la valeur d'identifiant « 0001 » dans la table.

Les contraintes uniques sont similaires aux contraintes de clé primaire dans le sens où elles garantissent toutes deux l'unicité des colonnes. La différence est qu'il peut y avoir plusieurs contraintes uniques dans une table et que la colonne dans laquelle la contrainte unique est définie peut avoir des valeurs nulles, mais il ne peut y avoir qu'une seule valeur nulle. Il ne peut y avoir qu'une seule contrainte de clé primaire dans une table et les valeurs nulles ne sont pas autorisées. Par exemple, dans le tableau d'informations utilisateur, afin d'éviter les noms d'utilisateur en double dans le tableau, le nom d'utilisateur peut être défini comme une contrainte unique.

Définir des contraintes uniques lors de la création de la table

Des contraintes uniques peuvent être définies directement lors de la création de la table, généralement sur d'autres colonnes en plus de la clé primaire supérieur.

Utilisez le mot-clé UNIQUE directement après avoir défini la colonne pour spécifier des contraintes uniques. Le format de syntaxe est le suivant :

CREATE TABLE <数据表名>(<字段名> <数据类型> UNIQUE);

Exemple 1

Créer des données. table tb_dept2, Le nom du département spécifié est unique. L'instruction SQL et les résultats d'exécution sont les suivants.

mysql> CREATE TABLE tb_dept2
    -> (
    -> id INT(11) PRIMARY KEY,
    -> name VARCHAR(22) UNIQUE,
    -> location VARCHAR(50)
    -> );
Query OK, 0 rows affected (0.37 sec)

mysql> DESC tb_dept2;
+----------+-------------+------+-----+---------+-------+
| Field    | Type        | Null | Key | Default | Extra |
+----------+-------------+------+-----+---------+-------+
| id       | int(11)     | NO   | PRI | NULL    |       |
| name     | varchar(40) | YES  | UNI | NULL    |       |
| location | varchar(50) | YES  |     | NULL    |       |
+----------+-------------+------+-----+---------+-------+
3 rows in set (0.08 sec)

Ajouter une contrainte unique lors de la modification de la table

Le format de syntaxe pour ajouter une contrainte unique lors de la modification de la table est :

ALTER TABLE <数据表名> ADD CONSTRAINT <唯一约束名> UNIQUE(<列名>);

Exemple 2

Modifiez la table de données tb_dept1 et spécifiez un nom de département unique L'instruction SQL et les résultats d'exécution sont les suivants.

mysql> ALTER TABLE tb_dept1
    -> ADD CONSTRAINT unique_name UNIQUE(name);
Query OK, 0 rows affected (0.63 sec)
Records: 0  Duplicates: 0  Warnings: 0
mysql> DESC tb_dept1;
+----------+-------------+------+-----+---------+-------+
| Field    | Type        | Null | Key | Default | Extra |
+----------+-------------+------+-----+---------+-------+
| id       | int(11)     | NO   | PRI | NULL    |       |
| name     | varchar(22) | NO   | UNI | NULL    |       |
| location | varchar(50) | YES  |     | NULL    |       |
+----------+-------------+------+-----+---------+-------+
3 rows in set (0.00 sec)

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!

Déclaration:
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