La contrainte d'unicité vous permet d'imposer l'unicité des enregistrements dans votre table de base de données et de maintenir l'intégrité de la base de données. Voici comment supprimer une contrainte unique de la table MySQL à l'aide de la commande MySQL DROP INDEX. Il est également utilisé pour supprimer la clé unique dans MySQL.
Qu'est-ce que la contrainte unique dans MySQL ?
La contrainte unique pour une table est une combinaison d'un ou plusieurs champs qui définissent de manière unique chaque enregistrement de la table. Ces champs peuvent contenir des valeurs nulles tant que la combinaison de valeurs de champ est unique.
Lecture bonus :SUPPRIMER LA CONTRAINTE FOREIGN KY
Comment supprimer une contrainte unique dans MySQL
Voici les étapes pour supprimer la contrainte unique dans MySQL. Nous utiliserons la requête MySQL DROP INDEX pour supprimer l'index existant d'une table.
Voici la syntaxe de la commande MySQL DROP INDEX
DROP INDEX constraint_name ON table_name
[algorithm_option | lock_option];
Dans la requête ci-dessus, constraint_name est le nom de la contrainte, et table_name est le nom de votre table de base de données.
Veuillez noter , que vous souhaitiez DROP INDEX ou DROP UNIQUE CONSTRAINT, vous devez utiliser la requête DROP INDEX.
Lecture bonus :BASE DE DONNÉES MySQL DROP
Vous pouvez également fournir 2 arguments facultatifs - algorithm_option et lock_option.
option_algorithme peut avoir l'une des 3 valeurs - default, inplace, copy. En fonction de votre argument, MySQL utilisera différents algorithmes pour supprimer la contrainte unique.
Sa syntaxe est
ALGORITHM [=] {DEFAULT|INPLACE|COPY}
- default - Cela a le même effet que de ne pas utiliser algorithm_option argument
- copy - La table dans laquelle vous devez supprimer la contrainte sera copiée et l'index sera supprimé de la table de copie. Pendant ce temps, les opérations simultanées telles que INSERT et UPDATE ne sont pas autorisées.
- inplace – Dans ce cas, la table est reconstruite sur place sans contrainte. Bien que cette option permette des opérations simultanées, elle place un verrou de métadonnées lors de l'exécution.
En fonction de lock_option MySQL verrouillera/ne verrouillera pas l'accès en lecture/écriture à vos tables pendant la suppression de la contrainte. lock_option a la syntaxe suivante
LOCK [=] {DEFAULT|NONE|SHARED|EXCLUSIVE}
Il prend 4 valeurs :
- default - il permet une simultanéité maximale pour votre choix d'algorithme. il permet à la fois les lectures et les écritures simultanées si elles sont prises en charge. Sinon, il n'autorise que les lectures simultanées. Si cela n'est pas non plus pris en charge, l'accès exclusif est appliqué.
- none - si pris en charge, vous pouvez avoir des lectures et des écritures simultanées. Sinon, MySQL renvoie une erreur.
- partagé – si l'option partagée est prise en charge, vous pouvez avoir des lectures simultanées, mais pas des écritures simultanées.
- exclusif :cette option impose un accès exclusif
Lecture bonus :MySQL DROP COLUMN
Exemple MySQL DROP UNIQUE CONTRAINTE
Supposons que vous ayez le tableau suivant avec une contrainte unique.
mysql> create table orders(order_id int primary key, order_date date, product varchar(255), sale int, constraint name unique (product) );
Voici la requête SQL pour supprimer la contrainte unique name à partir du tableau des commandes .
mysql> DROP INDEX name ON orders;
Lecture bonus :MySQL DROP TABLE
Index de clé primaire MySQL DROP
Étant donné que la clé primaire est également un exemple de contrainte unique sur la table, voici la syntaxe pour supprimer la contrainte de clé primaire sur les commandes de table.
mysql> DROP INDEX `PRIMARY` ON orders;
Dans ce cas, nous nous référons au champ de clé primaire comme "PRIMARY" au lieu d'utiliser le nom du champ.
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 !