L'errore dice tutto:
Duplicate entry ''
Quindi esegui la seguente query:
SELECT unique_id,COUNT(unique_id)
FROM yourtblname
GROUP BY unique_id
HAVING COUNT(unique_id) >1
Questa query ti mostrerà anche il problema
SELECT *
FROM yourtblname
WHERE unique_id=''
Questo ti mostrerà dove ci sono valori che hanno duplicati. Stai cercando di creare un indice univoco su un campo con duplicati. Dovrai prima risolvere i dati duplicati, quindi aggiungere l'indice.