¿Te ha ocurrido alguna vez que borrando productos en tu tienda de Magento has obtenido como respuesta un error parecido a esto:
SQLSTATE[22003]: Numeric value out of range: 1690 BIGINT UNSIGNED value is out of range in ‘(«YOURDBNAME».«q».«items_count» – 1)’?.
¡Deja de sufrir, sabemos cómo arreglarlo!
Da igual cuál sea la versión de Magento que estés corriendo. El error de BIGINT UNSIGNED es a nivel de SQL y afecta a las tablas internas de tu tienda. En concreto a unas tablas temporales que esta plataforma de comercio electrónico crea de vez en cuando cuando hace operaciones.
Es frecuente, por lo tanto, en tiendas con grandes movimientos de productos recibir un error similar a éste. Las tablas de SQL se bloquean y se hace imposible eliminar un producto o varios. Afortunadamente y si sigues estos sencillos pasos, el problema desaparece sin afectar ni un ápice el funcionamiento de tu tienda, ni la integridad de los datos.
Mensaje de error
SQLSTATE[22003]: Numeric value out of range: 1690 BIGINT UNSIGNED value is out of range in ‘(«YOURDBNAME».«q».«items_count» – 1)’
donde YOURDBNAME es el nombre de tu base de datos.
Solución al problema de BIGINT UNSIGNED cuando borramos productos
- Lo primero como siempre, y just in case, es hacer un backup de nuestra base de datos.
- A continuación accedemos a ella ya sea mediante phpmyadmin, MySQL Workbench o cualquier SGBD.
- Seleccionamos la base de datos.
- Elegimos la tabla «sales_flat_quote»
- Y ahora la pestaña Structure (Estructura).
- Marcamos la fila ‘items_count’ y elegimos Change (Cambiar).
- Una vez que estemos viendo sus columnas, buscamos la columna «attribute» y cambiamos su valor por el primero del combo, el que es un valor en blanco. (Significa sin valor).
- Pulsamos en Save (Guardar).
Ahora, nada tan simple como refrescar la página de administración de los productos y borrar el/los que queramos. Y bueno, nunca está demás echarle un ojo a los índices.
Más información: MagentoCommerce