Supprimer les enregistrements en double dans une table SQL sans clé primaire
En l'absence de clé primaire, identifier les enregistrements en double dans une base de données peut être difficile . Cependant, l'utilisation d'une combinaison de fonctions de fenêtre et d'opérateurs logiques permet une suppression efficace des doublons.
Dans l'exemple fourni, l'objectif est de supprimer les enregistrements de la table Employee qui ont les mêmes valeurs EmpId et EmpSSN. Pour y parvenir :
ROW_NUMBER() OVER (PARTITION BY EmpId, EmpName, EmpSSN ORDER BY EmpId) cnt
SELECT SUB FROM (SELECT ROW_NUMBER() OVER (PARTITION BY EmpId, EmpName, EmpSSN ORDER BY EmpId) cnt FROM Employee) SUB WHERE SUB.cnt > 1
DELETE SUB FROM (SELECT ROW_NUMBER() OVER (PARTITION BY EmpId, EmpName, EmpSSN ORDER BY EmpId) cnt FROM Employee) SUB WHERE SUB.cnt > 1
En suivant ces étapes, les enregistrements en double seront effectivement supprimés de la table Employee, garantissant l'intégrité des données sans nécessiter de clé primaire.
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!