Error de Mysql: Found row where the auto_increment column has the value 0

Una tabla que me estaba dando este error: Found row where the auto_increment column has the value 0. Ha simple vista esta claro. Un campo que es autoincrementable que tiene el valor 0.
Explico como lo he arreglado, es muy sencillo.

Al hacer un check de la tabla en cuestión es como se descubre este warning.

check table MI_TABLA Extended;

Table Op Msg_type Msg_text
——————— —— ——– ———————————————————
BBDD.MI_TABLA check warning Found row where the auto_increment column has the value 0
BBDD.MI_TABLA check status OK

Intento reparar la tabla con REPAIR

repair table MI_TABLA;

Table Op Msg_type Msg_text
——————— —— ——– ——–
BBDD.MI_TABLA repair status OK

Vuelvo a chequear la tabla a ver si se ha solucionado al problema. Pero no! La secuencia auto-numérica no se ha podido ajustar.

check table MI_TABLA Extended;

Table Op Msg_type Msg_text
——————— —— ——– ———————————————————
BBDD.MI_TABLA check warning Found row where the auto_increment column has the value 0
BBDD.MI_TABLA check status OK

Bueno pues como acabo de indicar, este error significa que tiene un registro en la tabla donde la columna AUTO_INCREMENT contiene un valor de índice de 0.
Esto no es un error por si mismo, pero puede causar problemas si decide volcar la tabla y restaurarla o realizar un ALTER TABLE en la tabla.
En este caso, la columna AUTO_INCREMENT cambia los valores según las reglas de las columnas AUTO_INCREMENT , que pueden causar problemas tales como errores de clave duplicada.

Para evitar las advertencias, simplemente se puede cambiar el id en cuestión ejecutando un UPDATE para poner en la columna un valor distinto a 0.
O bien, se puede borrar directamente si el registro es irrelevante o no necesario.

Yo he optado por lo rápido y he borrado el registro con valor 0. Después hago otra vez el check de la tabla y ya todo está ok.

check table MI_TABLA Extended;

Table Op Msg_type Msg_text
——————— —— ——– ——–
BBDD.MI_TABLA check status OK

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *