Heim > Datenbank > MySQL-Tutorial > Wie lösche ich doppelte Datensätze in SQL-Tabellen ohne Primärschlüssel?

Wie lösche ich doppelte Datensätze in SQL-Tabellen ohne Primärschlüssel?

DDD
Freigeben: 2025-01-04 22:23:39
Original
583 Leute haben es durchsucht

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

Löschen doppelter Datensätze ohne Primärschlüssel in SQL

Doppelte Datensätze können Probleme bei der Datenintegrität darstellen und zu ungenauen Ergebnissen und Dateninkonsistenzen führen. In Situationen, in denen einer Tabelle ein Primärschlüssel fehlt, kann das Identifizieren und Entfernen doppelter Datensätze komplexer sein.

Wenn kein Primärschlüssel vorhanden ist, besteht ein Ansatz zur Beseitigung doppelter Datensätze darin, diejenigen mit übereinstimmenden Werten in bestimmten Feldern zu identifizieren B. eine Mitarbeiter-ID und eine Sozialversicherungsnummer. Um dies zu erreichen, kann eine Unterabfrage verwendet werden, um die Tabelle basierend auf den gewünschten Kriterien zu partitionieren und jedem Datensatz eine fortlaufende Nummer zuzuweisen.

Die DELETE-Anweisung kann dann verwendet werden, um Datensätze mit doppelten Feldwerten durch Filtern zu löschen diejenigen mit einer Zeilennummer größer als 1. Dadurch wird sichergestellt, dass nur das erste Vorkommen jedes eindeutigen Wertesatzes beibehalten wird.

Beachten Sie die folgende SQL Abfrage:

DELETE SUB FROM
(SELECT ROW_NUMBER() OVER (PARTITION BY EmpId, EmpName, EmpSSN ORDER BY EmpId) cnt
FROM Employee) SUB
WHERE SUB.cnt > 1
Nach dem Login kopieren

In dieser Abfrage berechnet die Unterabfrage die Zeilennummer für jeden Datensatz, aufgeteilt nach den Feldern EmpId, EmpName und EmpSSN. Die ORDER BY-Klausel stellt sicher, dass die Zeilennummer sequenziell vergeben wird. Die DELETE-Anweisung entfernt dann alle Datensätze mit einer Zeilennummer größer als 1, wodurch Duplikate effektiv gelöscht werden.

Das obige ist der detaillierte Inhalt vonWie lösche ich doppelte Datensätze in SQL-Tabellen ohne Primärschlüssel?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage