mirror of
https://forge.chapril.org/tykayn/osm-commerces
synced 2025-10-04 17:04:53 +02:00
retapage accueil, gestion de Demandes
This commit is contained in:
parent
d777221d0d
commit
f4c5e048ff
26 changed files with 2498 additions and 292 deletions
60
clean_duplicate_stats.sql
Normal file
60
clean_duplicate_stats.sql
Normal file
|
@ -0,0 +1,60 @@
|
|||
-- Script SQL pour désactiver temporairement la contrainte d'unicité sur l'INSEE de ville,
|
||||
-- supprimer les doublons, et réactiver la contrainte
|
||||
|
||||
-- ATTENTION: Ce script supprime des enregistrements de la table stats.
|
||||
-- Les entités liées (CityFollowUp, 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.
|
||||
-- Assurez-vous de faire une sauvegarde de la base de données avant d'exécuter ce script.
|
||||
|
||||
-- 1. Désactiver temporairement la contrainte d'unicité
|
||||
ALTER TABLE stats DROP CONSTRAINT uniq_stats_zone;
|
||||
|
||||
-- 2. Identifier et supprimer les doublons, en gardant l'entrée la plus ancienne
|
||||
-- Créer une table temporaire pour stocker les IDs à supprimer
|
||||
CREATE TEMP TABLE stats_to_delete AS
|
||||
WITH duplicates AS (
|
||||
SELECT
|
||||
id,
|
||||
zone,
|
||||
date_created,
|
||||
ROW_NUMBER() OVER (
|
||||
PARTITION BY zone
|
||||
ORDER BY
|
||||
-- Garder l'entrée la plus ancienne si date_created existe
|
||||
CASE WHEN date_created IS NOT NULL THEN 0 ELSE 1 END,
|
||||
date_created,
|
||||
-- Si date_created est NULL, utiliser l'ID le plus petit (probablement le plus ancien)
|
||||
id
|
||||
) AS row_num
|
||||
FROM stats
|
||||
WHERE zone IS NOT NULL
|
||||
)
|
||||
SELECT id FROM duplicates WHERE row_num > 1;
|
||||
|
||||
-- Afficher le nombre de doublons qui seront supprimés
|
||||
SELECT COUNT(*) AS "Nombre de doublons à supprimer" FROM stats_to_delete;
|
||||
|
||||
-- Afficher les détails des doublons qui seront supprimés (pour vérification)
|
||||
SELECT s.id, s.zone, s.name, s.date_created
|
||||
FROM stats s
|
||||
JOIN stats_to_delete std ON s.id = std.id
|
||||
ORDER BY s.zone, s.id;
|
||||
|
||||
-- 3. Supprimer les doublons
|
||||
-- Note: Nous utilisons DELETE ... USING pour éviter les problèmes de contraintes de clé étrangère
|
||||
DELETE FROM stats
|
||||
USING stats_to_delete
|
||||
WHERE stats.id = stats_to_delete.id;
|
||||
|
||||
-- 4. Nettoyer la table temporaire
|
||||
DROP TABLE stats_to_delete;
|
||||
|
||||
-- 5. Réactiver la contrainte d'unicité
|
||||
ALTER TABLE stats ADD CONSTRAINT uniq_stats_zone UNIQUE (zone);
|
||||
|
||||
-- 6. Vérifier qu'il n'y a plus de doublons
|
||||
SELECT zone, COUNT(*)
|
||||
FROM stats
|
||||
WHERE zone IS NOT NULL
|
||||
GROUP BY zone
|
||||
HAVING COUNT(*) > 1;
|
Loading…
Add table
Add a link
Reference in a new issue