Der Fehler sagt alles:
Duplicate entry ''
Führen Sie also die folgende Abfrage aus:
SELECT unique_id,COUNT(unique_id)
FROM yourtblname
GROUP BY unique_id
HAVING COUNT(unique_id) >1
Diese Abfrage zeigt Ihnen auch das Problem
SELECT *
FROM yourtblname
WHERE unique_id=''
Dies zeigt Ihnen, wo es Werte gibt, die Duplikate haben. Sie versuchen, einen eindeutigen Index für ein Feld mit Duplikaten zu erstellen. Sie müssen zuerst die doppelten Daten auflösen und dann den Index hinzufügen.