MySQL - Faire un Champ Unique
J'ai une table avec un champ qui doit être unique, mais ne l'est pas. Je ne le sais parce que l'inscription a été faite dans la table qui avait la même valeur qu'un autre, déjà existant, de l'entrée et cela a causé des problèmes.
Comment puis-je faire dans ce domaine que d'accepter les valeurs uniques?
Vous devez vous connecter pour publier un commentaire.
Pour MySQL 5.7.4 ou plus tard:
Donc, assurez-vous de supprimer les doubles entrées d'abord comme IGNORER le mot clé n'est plus supporté.
Référence
If IGNORE is specified, only the first row is used of rows with duplicates on a unique key, The other conflicting rows are deleted.
DocsALTER
obtenir ce fait.UNIQUE
est une de ces choses qui devraient vraiment ont été fait lors de la création de la base de données.ALTER IGNORE
peut encore donner à Double erreur sur la version de MySQL > 5.5 et sur InnoDB pour la sécurité de l'amour de vos données. Si vous venez de vous assurer que le maintien de la première de la les lignes en double est la bonne chose, essayezset session old_alter_table=1
. N'oubliez pas de le régler. mysqlolyk.wordpress.com/2012/02/18/...Il suffit d'écrire cette requête dans votre base de données phpmyadmin.
Par exemple:
ALTER TABLE user ADD UNIQUE (email)
Si vous aussi vous voulez le nom de la contrainte, utilisez ceci:
CREATE UNIQUE INDEX foo ON table_name (field_name)
(Vous devez supprimer les valeurs en double avant que.)
Le plus simple et le plus rapide serait avec phpmyadmin structure de la table.
Là, c'est en russe, mais en Version anglaise devrait être le même. Cliquez simplement sur le bouton Unique. Aussi à partir de là, vous pouvez faire vos colonnes PRIMAIRE ou SUPPRIMER.
est la bonne réponse
la part insérer
Ce code est de résoudre notre problème à régler clé unique pour la table existante