Maison > base de données > tutoriel mysql > Comment supprimer les enregistrements en double dans les tables SQL sans clé primaire ?

Comment supprimer les enregistrements en double dans les tables SQL sans clé primaire ?

DDD
Libérer: 2025-01-04 22:23:39
original
586 Les gens l'ont consulté

How to Delete Duplicate Records in SQL Tables Without a Primary Key?

Suppression d'enregistrements en double sans clé primaire dans SQL

Les enregistrements en double peuvent poser des problèmes d'intégrité des données, entraînant des résultats inexacts et des incohérences de données. Dans les situations où une table ne dispose pas de clé primaire, l'identification et la suppression des enregistrements en double peuvent être plus complexes.

En l'absence de clé primaire, une approche pour éliminer les enregistrements en double consiste à identifier ceux dont les valeurs correspondent dans des champs spécifiques. , comme un identifiant d'employé et un numéro de sécurité sociale. Pour y parvenir, une sous-requête peut être utilisée pour partitionner la table en fonction des critères souhaités et attribuer un numéro séquentiel à chaque enregistrement.

L'instruction DELETE peut ensuite être utilisée pour supprimer les enregistrements avec des valeurs de champ en double en filtrant sur ceux dont le numéro de ligne est supérieur à 1. Cela garantit que seule la première occurrence de chaque ensemble unique de valeurs est conservée.

Considérez le SQL suivant requête :

DELETE SUB FROM
(SELECT ROW_NUMBER() OVER (PARTITION BY EmpId, EmpName, EmpSSN ORDER BY EmpId) cnt
FROM Employee) SUB
WHERE SUB.cnt > 1
Copier après la connexion

Dans cette requête, la sous-requête calcule le numéro de ligne pour chaque enregistrement, partitionné par les champs EmpId, EmpName et EmpSSN. La clause ORDER BY garantit que le numéro de ligne est attribué de manière séquentielle. L'instruction DELETE supprime ensuite tous les enregistrements dont le numéro de ligne est supérieur à 1, supprimant ainsi les doublons.

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal