Il arrive quelques fois que l'on soit obliger de détecter ou supprimer desdoublons dans des tables sur un champ particulier. Cela peut devenir une opération très longue et gourmande en ressources.Heureusement on peut utiliser pour améliorer les traitements rdb$db_key.
Ce qui donne :
pour juste les lister :
1 2 3 4 | select c0.some_value from your_table c0, your_table c1 wherec0.some_value=c1.some_value and c0.rdb$db_key>c1.rdb$db_key |
pour les supprimer sans les lister
1 2 3 4 5 6 7 | delete from your_table r where r.rdb$db_key in (select c0.rdb$db_key from your_table c0 join your_table c1 on c0.some_value=c1.some_value and c0.rdb$db_key>c1.rdb$db_key ) |
Le champ some_value étant celui où l'on ne veux pas de doublon
Pour plus de renseignements sur rdb$db_key, lisez : http://www.cvalde.net/document/mysteriousDbKey.htm