Error duplicate entry MySQL

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!

Anuncio publicitario

Deja una respuesta

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Salir /  Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Salir /  Cambiar )

Conectando a %s

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.