Duplikate aus einer PostgreSQL-Datenbank sicher entfernen


Klei­ne Notiz, auch für mich selbst. Wer aus einer Post­greS­QL-Daten­bank mal flott alle Dupli­ka­te löschen möch­te, kann wie folgt vorgehen:

DELETEFROM    tabellennameWHERE   feldmituniquekey NOT IN  (SELECT   MAX(dup.feldmituniquekey)  FROM      tabellenname As dup  GROUP BY  dup.doppeltezeile1, dup.doppeltezeile2, dup.doppeltezeile3, dup.doppeltezeile4);

Die Anzahl der GROUP-BY-Fel­der kann belie­big erwei­tert wer­den, um das ver­se­hent­li­che Löschen von teil­wei­se iden­ti­schen Daten­sät­zen zu verhindern.


Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.