Conservation d'une seule copie : suppression des lignes en double non identiques
Le maintien de l'intégrité des données implique souvent la suppression des enregistrements redondants des bases de données. Toutefois, dans certains scénarios, il peut être nécessaire de conserver une copie de chaque groupe de lignes en double. Cet article aborde le défi de la suppression de toutes les lignes sauf une d'un ensemble de doublons dans PostgreSQL.
Solution : suppression sélective à l'aide d'identifiants uniques
La requête fournie dans la solution utilise le concept de regroupement et de sélection de la valeur minimale (ou maximale) d'un champ d'identifiant unique au sein de chaque groupe de doublons. En excluant les lignes avec cet identifiant minimum (ou maximum) du processus de suppression, une seule copie de chaque ligne unique peut être conservée.
La requête suivante illustre cette approche :
DELETE FROM foo WHERE id NOT IN (SELECT min(id) FROM foo GROUP BY hash);
Dans Dans cette requête, le champ de hachage représente une caractéristique unique ou une combinaison de caractéristiques qui définit les ensembles en double. En sélectionnant la valeur d'identification minimale de chaque groupe, la requête identifie la ligne qui sera conservée et exclut les lignes en double restantes de la suppression.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!