Situación: Quiero añadir un índice UNIQUE para dos índices de una tabla que no está vacía.
Error: Error duplicate entry ‘1-10’. Informa que ya existe una clave duplicada.
Solución: Hay que borrar una de las tuplas duplicadas para que nos deje añadir la restricción UNIQUE:
Secuencia de modificación de la tabla
ALTER TABLE `protocolo_alarma` ADD UNIQUE INDEX `alarma_generada_id_tipo_id` (`tipo_id`, `alarma_generada_id`); /* SQL Error (1062): Duplicate entry '1-10' for key 'alarma_generada_id_tipo_id' */
Estas añadiendo un UNIQUE y tienes ya tuplas duplicadas. Borramos una de ellas.
DELETE FROM `protocolo_alarma` WHERE `protocolo_alarma_id`=16 LIMIT 1;
Ya podemos modificar la tabla.
ALTER TABLE `protocolo_alarma` ADD UNIQUE INDEX `alarma_generada_id_tipo_id` (`tipo_id`, `alarma_generada_id`); /* 0 rows affected, 0 rows found. Duration for 1 query: 0,202 sec. */
Saludos!