Ver Mensaje Individual
  #3 (permalink)  
Antiguo 08/07/2014, 03:09
Avatar de gnzsoloyo
gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: duplicate entry 127 key for key 1

El error de clave duplicada es porque definir ese campo como TYNYINT con signo, lo cual es un error grave. Un ID no debe ser signado y rata vez tan chico. Por eso, cuando intenta crear un número superior al 127 (positivo) se desborda y pone el maximo de su rango positivo que es precisamente 127.

El otro es por la forma en que MySQL hace la modificación. Tienes datos en la tabla y eso causa problemas. Si pudieses vaciar las tablas lo podrías hacer.
Adicionalmente, es altamente probable que haya otra tabla que dependa de esa, o al menos eso parece.
El tema es asi: Para modificar el campo, MySQL hace una copia de de la tabla y transfiere los valores a la nueva, para luego renombrarlo (al menos eso decía el manual); por consecuencia, si hay una tabla dependiente de esa, la acción no se puede realizar porque para lograrla debe en un momento dado borrarse la tabla modificada antes de renombrar l anueva, y eso rompe con la dependencia de FK que exista.

La solución más simple es vaciar las tablas antes de proceder. De no poder vaciarlas, necesitaríamos ver sus estructuras para mejores consejos.
Y por "estructura" nos referimos a los CREATE TABLE completos de esas tablas, y no una descripción. Necesitamos ver con qué cosas reales estás trabajando.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Última edición por gnzsoloyo; 08/07/2014 a las 06:16