info {at} depannet-express {.} fr

Supprimer les doublons dans une table MySQL

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 Comment