MySQL – Rendre un champ existant unique

J’ai une table déjà existante avec un champ qui devrait être unique mais qui ne l’est pas. Je le sais seulement parce qu’une entrée a été faite dans la table qui avait la même valeur qu’une autre entrée déjà existante et que cela posait des problèmes.

Comment faire pour que ce champ n’accepte que des valeurs uniques?

ALTER IGNORE TABLE mytbl ADD UNIQUE (columnName); 

Pour MySQL 5.7.4 ou ultérieur:

 ALTER TABLE mytbl ADD UNIQUE (columnName); 

Depuis MySQL 5.7.4, la clause IGNORE pour ALTER TABLE est supprimée et son utilisation génère une erreur.

Donc, assurez-vous de supprimer les entrées en double en premier, car le mot-clé IGNORE n’est plus pris en charge.

Référence

Il suffit d’écrire cette requête dans votre firebase database phpmyadmin.

 ALTER TABLE TableName ADD UNIQUE (FieldName) 

Exemple.

 ALTER TABLE user ADD UNIQUE (email) 

Merci

Si vous voulez aussi nommer la contrainte, utilisez ceci:

 ALTER TABLE myTable ADD CONSTRAINT constraintName UNIQUE (columnName); 

CREATE UNIQUE INDEX foo ON table_name (field_name)

(Vous devez supprimer les valeurs en double avant cela.)

 ALTER IGNORE TABLE mytbl ADD UNIQUE (columnName); 

est la bonne réponse

la pièce d’insertion

 INSERT IGNORE INTO mytable .... 

Le moyen le plus simple et le plus rapide serait d’utiliser la table de structure phpmyadmin.

UTILISEZ LE PANNEAU ADMINISTRATIF DE PHPMYADMIN!

Là c’est en langue russe mais en version anglaise devrait être la même. Cliquez simplement sur le bouton Unique. De plus, vous pouvez créer vos colonnes PRIMARY ou DELETE.

Ce code est pour résoudre notre problème pour définir une clé unique pour la table existante

 alter ignore table ioni_groups add unique (group_name);