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