135 votes

Comment supprimer l'unique dans MySQL ?

Create Table: CREATE TABLE `fuinfo` (
  `fid` int(10) unsigned NOT NULL,
  `name` varchar(40) NOT NULL,
  `email` varchar(128) NOT NULL,
  UNIQUE KEY `email` (`email`),
  UNIQUE KEY `fid` (`fid`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8

Je veux supprimer la clé unique sur email ,comment ?

270voto

Wael Dalloul Points 7995

Vous pouvez simplement utiliser le SQL script suivant pour supprimer l'index dans MySQL :

alter table fuinfo drop index email;

60voto

arty Points 341

Il existe un meilleur moyen qui ne nécessite pas de modifier la table :

mysql> DROP INDEX email ON fuinfo;

où email est le nom de la clé unique (index).

Vous pouvez aussi le ramener comme ça :

mysql> CREATE UNIQUE INDEX email ON fuinfo(email);

où email après IDEX est le nom de l'index et il n'est pas optionnel. Vous pouvez utiliser KEY au lieu de INDEX.

Il est également possible de créer (supprimer) des indentations uniques multicolonnes comme cela :

mysql> CREATE UNIQUE INDEX email_fid ON fuinfo(email, fid);
mysql> DROP INDEX email_fid ON fuinfo;

Si vous n'avez pas spécifié le nom de l'index multicolonne, vous pouvez le supprimer comme ça :

mysql> DROP INDEX email ON fuinfo;

où email est le nom de la colonne.

9voto

gavin Points 145

Mysql> DROP INDEX email ON fuinfo ;

email est la clé unique (plutôt que le nom de la colonne). Vous trouvez le nom de la clé unique en

mysql> SHOW CREATE TABLE fuinfo;

ici vous voyez le nom de la clé unique, qui pourrait être email_2, par exemple. Donc...

mysql> DROP INDEX email_2 ON fuinfo;

mysql> DESCRIBE fuinfo;

Cela devrait montrer que l'index est supprimé

6voto

Chandresh Points 351

Utilisez la requête ci-dessous :

ALTER TABLE `table_name` DROP INDEX key_name;

Si vous ne connaissez pas le nom de la clé, essayez d'abord la requête ci-dessous, vous pourrez obtenir le nom de la clé.

SHOW CREATE TABLE table_name

OU

SHOW INDEX FROM table_name;

Si vous voulez enlever/supprimer la clé primaire d'une table mysql, utilisez la requête suivante pour cela

ALTER TABLE `products` DROP INDEX `PRIMARY`;

Code Tiré de : http://chandreshrana.blogspot.in/2015/10/how-to-remove-unique-key-from-mysql.html

4voto

Lina Gom Points 97

DROP INDEX column_name ON nom_table

Sélectionnez la base de données et la requête dans l'onglet sql. Cela supprime l'index de la colonne en question. Cela a fonctionné pour moi en PHP MyADMIN

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X