@nikosch77:
Ich würde vermuten, dass der Befehl fehlschlägt, da es für die Spalte bereits doppelte Einträge gibt. Ein "Automerge" wäre mir neu.
Komplett gleiche Datensätze verstossen übrigens gegen das relationale Datenbank-Modell.
Ein Eintrag MUSS eindeutig ientifizierbar sein, notfalls ist der Primärschlüssel aus allen Spalten zusammengesetzt. Entfern die doppelten Einträge also dauerhaft. Ich hoffe mal, das ist nur ein einmaliger "Reinigungs"-Vorgang
Ehrlich gesagt wüsste ich nicht, wie du das mit einem Statement löst, aber da bin ich auch nicht so der König.
Schließlich kannst du wie erwähnt nicht untereinander zwischen Mehrfacheinträgen unterscheiden.
Ich würde wohl alle doppelten Kombinationen herausfiltern & deren Anzahl, und diese dann einzeln löschen. Nicht sehr performant, aber immerhin.
Doppelte zählen:
SELECT object_id, value FROM table WHERE CONCAT(object_id, '#', value) IN (SELECT DISTINCT CONCAT(object_id, '#', value) FROM table GROUP BY (object_id, value) HAVING COUNT(*) > 1)
Wie kam es denn zu diesem Katastrophen-Zustand in der DB?
Edit: Evtl. kannst du eine zusatzliche Auto-Increment/ID-Spalte einfügen, damit du wenigstens während dem Entfernen der doppelten Einträge eine Spalte eindeutig identfizieren kannst. Danach kannst du sie ja wieder entfernen.