2010-11-10 45 views
11

J'ai vu d'autres questions liées à cela, mais elles n'étaient pas MySQL.Modifier une table en direct pour rendre une clé non unique

La base de données est une base de données en direct, donc je ne veux pas supprimer et recréer la table. Je veux simplement faire une colonne qui ne soit plus unique, ce qui est moins permissif dans la nature, donc cela ne devrait pas causer de problèmes.

Répondre

23

Si votre colonne a été défini unique en utilisant la clause UNIQUE, puis utilisez:

ALTER TABLE mytable DROP INDEX constraint_name 

, ou, si votre contrainte a été implicitement nommé,

ALTER TABLE mytable DROP INDEX column_name 

Si elle a été définie unique en utilisant PRIMARY KEY clause, utiliser:

ALTER TABLE mytable DROP PRIMARY KEY 

Notez cependant que si votre table est InnoDB, laissant tomber PRIMARY KEY entraînera la recréation implicite de votre table et la reconstruction de tous les index, ce qui verrouillera la table et peut le rendre inaccessible pendant un certain temps.

+0

J'ai essayé de laisser tomber la clé unique, mais son erreur donnant. sera-t-il possible de le faire ou j'ai besoin de re créer la table. –

+0

@Ranbir: s'il vous plaît postez comme une autre question – Quassnoi

1

Juste DROP l'index unique. Il ne devrait pas être un problème avec le fait qu'il s'agit d'une base de données en direct. Si c'est une très grande table, vous pouvez bloquer certaines requêtes temporairement pendant que l'index est supprimé. Mais que devrait seulement se produire si vous étiez en train d'ajouter un index.

ALTER TABLE table_name DROP INDEX index_name; 
1

Dans certains cas, le développeur (vous) ne voulez pas laisser tomber mais il suffit de modifier le « caractère unique » à « non-unique ».

Étapes:

  1. Aller à la table dans le contexte où vous souhaitez effectuer la modification

  2. Cliquez sur l'onglet "Structure" (la plupart du temps à côté de Parcourir)

  3. Rechercher pour le lien "+ Indexes", juste sous les colonnes. Ouais ... maintenant cliquez dessus
  4. Maintenant, vous pouvez voir tous les "index" et vous pouvez maintenant cliquer sur le bouton "DROP" ou un lien pour modifier.

réponse a été trouvée ici: Source: https://forums.phpfreaks.com/topic/164827-phpmyadmin-how-to-make-not-unique/

+0

FYI (pour les autres googleurs) ce sont des instructions pour l'application phpmyadmin. –

+0

Merci Alexander Bird. L'add-on est très apprécié. Oui, les instructions ci-dessus sont pour "app phpMyAdmin". – AppEmmanuel