# Script de nettoyage des doublons de villes Ce dossier contient un script SQL pour résoudre le problème de contrainte d'unicité sur le code INSEE des villes dans la table `stats`. ## Problème Lorsque vous rencontrez l'erreur suivante : ``` SQLSTATE[23505]: Unique violation: 7 ERREUR: n'a pas pu créer l'index unique « uniq_stats_zone » DETAIL: La clé (zone)=(91111) est dupliquée. ``` Cela signifie qu'il existe des doublons dans la table `stats` avec le même code INSEE (colonne `zone`), ce qui empêche la création de la contrainte d'unicité. ## Solution Le script `clean_duplicate_stats.sql` permet de : 1. Désactiver temporairement la contrainte d'unicité 2. Identifier et supprimer les doublons de villes, en gardant l'entrée la plus ancienne 3. Réactiver la contrainte d'unicité ## Comment utiliser le script ### Précautions importantes ⚠️ **ATTENTION** : Ce script supprime des données de la base. Assurez-vous de faire une sauvegarde complète de votre base de données avant de l'exécuter. Les entités liées aux enregistrements `Stats` supprimés (comme `CityFollowUp` et `Place`) seront également supprimées si des contraintes de clé étrangère avec `ON DELETE CASCADE` sont définies dans la base de données. ### Exécution du script Pour exécuter le script sur une base PostgreSQL : ```bash psql -U username -d database_name -f clean_duplicate_stats.sql ``` Remplacez `username` par votre nom d'utilisateur PostgreSQL et `database_name` par le nom de votre base de données. ### Vérification Le script inclut des requêtes pour : - Afficher le nombre de doublons qui seront supprimés - Afficher les détails des doublons avant suppression - Vérifier qu'il n'y a plus de doublons après l'opération ## Fonctionnement technique Le script : 1. Désactive la contrainte d'unicité `uniq_stats_zone` 2. Crée une table temporaire pour identifier les doublons 3. Utilise `ROW_NUMBER()` pour conserver l'entrée la plus ancienne de chaque groupe de doublons 4. Supprime les doublons identifiés 5. Réactive la contrainte d'unicité 6. Vérifie qu'il n'y a plus de doublons ## Après l'exécution Une fois le script exécuté avec succès, vous ne devriez plus rencontrer l'erreur de violation de contrainte d'unicité lors de l'exécution des commandes Symfony.