Mysql
 sql >> Base de données >  >> RDS >> Mysql

MySQL Ajouter une contrainte unique

Parfois, vous devrez peut-être rendre la colonne unique dans MySQL. Vous pouvez le faire en ajoutant une contrainte de colonne UNIQUE dans MySQL. Il existe plusieurs façons d'ajouter une contrainte unique - en utilisant les instructions CREATE TABLE ou ALTER TABLE. Voici comment ajouter une contrainte unique dans MySQL.

MySQL ajoute une contrainte unique

Voici comment ajouter une contrainte unique dans MySQL. Vous pouvez ajouter une contrainte Unique lorsque vous créez une table ou après avoir créé une table. Nous examinerons ces deux approches.

MySQL ajoute une contrainte unique lors de la création d'une table

Voici l'instruction SQL pour créer une contrainte UNIQUE lorsque vous créez une table

CREATE TABLE table_name(
    ...,
    column_name data_type UNIQUE,
    ...
)

Dans la requête ci-dessus, vous devez spécifier le mot-clé UNIQUE pour la définition de la colonne que vous souhaitez rendre unique.

Voici un exemple pour créer une contrainte unique. Dans l'exemple suivant, nous avons ajouté la contrainte UNIQUE pour order_id colonne

mysql> create table recent_orders
     (
     order_id int UNIQUE,
     amount int
     );

mysql> describe recent_orders;
+----------+---------+------+-----+---------+-------+
| Field    | Type    | Null | Key | Default | Extra |
+----------+---------+------+-----+---------+-------+
| order_id | int(11) | YES  | UNI | NULL    |       |
| amount   | int(11) | YES  |     | NULL    |       |
+----------+---------+------+-----+---------+-------+

Maintenant, si vous essayez d'insérer des valeurs en double pour order_id colonne, vous obtiendrez une erreur.

mysql> insert into recent_orders(order_id, amount) values(1, 100),(1,250);
ERROR 1062 (23000): Duplicate entry '1' for key 'order_id'

mysql> insert into recent_orders(order_id, amount) values(1, 100),(2,250);

mysql> select * from recent_orders;
+----------+--------+
| order_id | amount |
+----------+--------+
|        1 |    100 |
|        2 |    250 |
+----------+--------+

Lecture bonus :Colonne de renommage MySQL

MySQL ajoute une contrainte unique à une colonne existante

Voici l'instruction SQL pour créer une contrainte UNIQUE pour une colonne existante, à l'aide de l'instruction ALTER TABLE.

ALTER TABLE table_name
ADD CONSTRAINT constraint_name UNIQUE (column1, column2, ... );

Dans la requête SQL ci-dessus, vous devez spécifier un constraint_name pour la contrainte UNIQUE après ADD CONSTRAINT, et répertoriez les colonnes que vous souhaitez rendre uniques dans ( )

Voici un exemple pour ajouter une contrainte unique à une colonne existante

mysql> alter table recent_orders add constraint unique_amount UNIQUE (amount);

mysql> describe recent_orders;
+----------+---------+------+-----+---------+-------+
| Field    | Type    | Null | Key | Default | Extra |
+----------+---------+------+-----+---------+-------+
| order_id | int(11) | YES  | UNI | NULL    |       |
| amount   | int(11) | YES  | UNI | NULL    |       |
+----------+---------+------+-----+---------+-------+

Dans la requête ci-dessus, nous avons ajouté une contrainte unique à la colonne de montant.

Lecture bonus :comment dupliquer une table dans MySQL

MySQL ajoute une contrainte unique sur plusieurs colonnes

Voici l'instruction SQL pour créer une contrainte UNIQUE sur plusieurs colonnes.

mysql> create table old_orders
     (
     order_id int,
     amount int,
     CONSTRAINT u_orders UNIQUE (order_id,amount)
     );


mysql> describe old_orders;
+----------+---------+------+-----+---------+-------+
| Field    | Type    | Null | Key | Default | Extra |
+----------+---------+------+-----+---------+-------+
| order_id | int(11) | YES  | MUL | NULL    |       |
| amount   | int(11) | YES  |     | NULL    |       |
+----------+---------+------+-----+---------+-------+


mysql> insert into old_orders(order_id, amount) values(1, 100),(1,100);
ERROR 1062 (23000): Duplicate entry '1-100' for key 'u_orders'

Lecture bonus :procédure stockée MySQL avec paramètres

Vous pouvez également ajouter UNIQUE CONSTRAINT à plusieurs colonnes à l'aide de l'instruction ALTER TABLE.

alter table old_orders add constraint unique_orders UNIQUE (order_id,amount);

Ubiq facilite la visualisation des données en quelques minutes et la surveillance dans des tableaux de bord en temps réel. Essayez-le aujourd'hui !