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

MySQL DROP CONTRAINTE UNIQUE

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 !