Löschen Duplikate aus einem zusammengesetzten Primärschlüssel der Tabelle
Ich habe eine Tabelle mit zusammengesetztem Primärschlüssel(a,b). Ich nahm eine Sicherung in der temp-Tabelle, aber einige, wie es kam, die doppelte Datensätze. jetzt bin ich nicht in der Lage, verschieben Sie die backup-Datensätze zu Haupttabelle.
freundlich darauf hin einige Weg, um löschen Sie die Duplikate in der temp-Tabelle, basierend auf 2 Spalten. Tabelle der oracle-Tabelle mit 70 Millionen Datensätze von rund 4 Millionen Duplikate
Du musst angemeldet sein, um einen Kommentar abzugeben.
Haben Sie zwei Möglichkeiten:
Die zweite ist effizienter und kann getan werden mit dieser Anweisung:
Als alternative (z.B. wenn einige der Spalten sind definiert als
CLOB
oderLONG
- und Sie nicht anwenden können eine max() auf Sie):Wenn Sie wirklich wollen, löschen Sie zuerst die Zeilen, die Sie tun können diese mit der folgenden Anweisung:
Gibt es 3 Methoden, es zu tun, aufgelistet in orafaq
Die einfachste Weise zu beseitigen, die doppelten Datensätze zu SELECT in eine temporäre Tabelle, abschneiden der ursprünglichen Tabelle, und WÄHLEN Sie die Datensätze wieder in die ursprüngliche Tabelle. Details hier.
Diese ist für MSSQL-Server, aber ich denke, die gleichen Prinzipien gelten in Ihrem Fall zu.
Sagen, ich habe Daten wie
Hier die user1(3) und user2(1) haben wiederholt Rekorde.
Diese Abfrage zeigt NUR die Datensätze, die im wiederholten Fall
Also statt 3 Einträge für user1 zeigt es nur 2
Das Ergebnis ist
Können Sie ersetzen Sie die WÄHLEN Sie mit LÖSCHEN entfernen der Datensätze wiederholt.
Hoffe es hilft