Arreglar ‘auto_increment’ desactivado en base de datos de WordPress

Wordpress + MySQL

Ha pasado un tiempo sin escribir y aquí estoy otra vez con algo muy distinto pero igualmente útil. Voy a hablar sobre una parte de mi experiencia construyendo una web en WordPress, va a ser cortito, allá va:

ids de tablas de wp han perdido la propiedad auto_increment

Quizá otros se hayan visto o se vean en la situación que explico a continuación, “algunos elementos de WordPress y plugins dejan de funcionar correctamente”, yo estuve atascado con el plugin Polylang en particular, después de activarlo no podía utilizarlo, sus settings en el dashboard de WP se mostraban parcialmente y era inutilizable. Tarde un tiempo navegando entre código en descubrir que el problema estaba relacionado con la base de datos.

Los registros que intentaba guardar en cualquier tabla de la base de datos se sobreescribían en la primera fila con id=0. Ahí ya si revise la estructura de las tablas y me di cuenta que la propiedad ‘auto_increment’ de los ids estaba desmarcada. Entonces razoné que cada nuevo registro se estaba guardando con el valor por defecto del campo id (cero).

Antes de empezar con la solución, diré que pensando en retrospectiva, esta desconfiguración vino después de importar un backup de la base de datos. No sé si depende de cómo lo importes/exportes pero no siempre me ha sucedido esto. De todas formas es importante asegurarse mirando el sql de lo que vas a importar.

SOLUCIÓN

Realmente es simple, vuelve a marcar la casilla de ‘auto_increment’ de el id de cada tabla desde PhpMyAdmin o usa la correspondiente consulta sql.
Además, deberías modificar el valor actual de el ‘auto_increment’ de cada tabla a uno superior a cualquiera ya existente en la tabla, por ejemplo:

ALTER TABLE table_name AUTO_INCREMENT = 1000;

Una vez esto hecho tus siguientes inserciones comenzarán por ese id.
Puede que te devuelva un error al intentar realizar la consulta del tipo “alter table causes auto_increment resequencing resulting in duplicate entry 1” (o cero), en este caso borra el registro con id 0 o 1 o también puedes modificarlo temporalmente para poder ejectuar la consulta sin errores.

Deja un comentario

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

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