Kategorien
Datenbanken

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 vor­ge­hen: DELETE FROM tabel­len­na­me WHERE feld­mit­u­ni­que­key NOT IN (SELECT MAX(dup.feldmituniquekey) FROM tabel­len­na­me As …

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 vor­ge­hen:

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 ver­hin­dern.