Si al intentar ingresar un dato en una tabla de una base de datos MySQL obtienes el siguiente mensaje de error:
Duplicate entry '127' for key 1
Esto probablemente se deba a que la clave primaria de la tabla es de tipo
TINYINT.
El tamaño asignado a un campo TINYINT no es mayor a 1 byte. Sin importar el número que pongas entre paréntesis para el tipo TINYINT. Por lo tanto los valores soportados por los enteros de tipo TINYINT no pueden ser mayores a 127 ó 255, dependiendo de que sea con signo o sin signo. Una tabla con un campo autoincrmentable no soporta valores mayores a 127 ó 255. Debido a esto aparece el mensaje de error.
Para solucionar este problema, si debes elegir un tipo numérico para una clave primaria, elige de preferencia el tipo INT que puede soportar enteros con una capacidad máxima del orden de los 2 a 4 miles de millones.
Artículos de interés
http://dev.mysql.com/doc/refman/5.1/en/numeric-types.html
Véase también
Comunidad de asistencia y consejos.
El artículo original fue escrito por
kilian. Traducido por
Carlos-vialfa.