Comment supprimer les doublons dans une table MySQL ? Plus précisément : Comment dé-doublonner une table sans risquer la perte de données ?
C’est très simple et une simple requête peut faire le travail pour vous.
Tout d’abord on va créer une table simple :
CREATE TABLE IF NOT EXISTS `ville` ( `id` int(11) NOT NULL AUTO_INCREMENT, `nom` varchar(255) NOT NULL, `code` varchar(10) NOT NULL, PRIMARY KEY (`id`) )
On a donc une table de ville avec un ID, le nom de la ville et le code postal.
On va insérer plusieurs lignes, dont des doublons.
INSERT INTO `ville` (`nom`) VALUES (‘Paris’), (‘Les Paris’), (‘Paris’), (‘Paris’), (‘Villeparisis’);
On a donc 3 fois la ligne “Paris” dans notre table. On pourrait le supprimer à la main vous me direz, mais sur une table qui contient toutes les villes du monde, c’est moins facile !
C’est là que notre requête “magique” entre en jeu : Simple, il suffit de rendre le champs “nom” unique ! Oui mais il y a une petite astuce qui évitera l’erreur que vous venez d’avoir “Duplicate entry …”
Il suffit d’y rajouter un “IGNORE” !
ALTER IGNORE TABLE ville ADD UNIQUE INDEX(nom);
Et voilà ! Il ne reste qu’une seule entrée “Paris” dans votre base de données. Libre à vous de supprimer (ou non) l’index unique une fois le ménage fait !
Leave a Reply