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.
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);