Doppelte Einträge in einer MySQL-Tabelle ohne Primary Key entfernen

Ich war neulich mit einer MySQL-Datenbanktabelle konfrontiert, in der viele idente Einträge vorhanden waren, obwohl jede Zeile nur einmal existieren sollte. Die Datensätze mussten also entfernt werden. An sich kein Problem, jedoch: die Tabelle hatte keinen Primary Key. Schön blöd, aber ich sag‘ gleich, die Tabelle stammt nicht von mir. 😉

Was machen wir also mit den Duplikaten? Wir schmeißen sie raus, indem wir einen Unique Key erzeugen.

Der Trick dabei ist das Keyword IGNORE, denn ohne diesen Zusatz schreit MySQL wegen der doppelten Einträge um Hilfe („MySQL meldet: #1062 – Duplicate entry ‚1-abc-def‘ for key 1“). Mit diesem Schritt schlägt man zwei Fliegen mit einer Klappe: die Mehrfacheinträge sind verschwunden und man hat einen Unique Key, der doppelte Einträge in Zukunft verhindert.

Falls das für euch zu sehr nach Holzhacker-Methode klingt, könnt ihr gerne Alternativen posten. 😉