Cambiar el ID de incremento de una entidad de la base de datos (pedido, factura, nota de abono, etc.) en un almacén concreto
Este artículo explica cómo cambiar el id. de incremento de una entidad de la base de datos de Adobe Commerce (BD) (pedido, factura, nota de abono, etc.) en un almacén de Adobe Commerce concreto mediante la instrucción SQL ALTER TABLE
.
Versiones afectadas
- Adobe Commerce local: 2.x.x
- Adobe Commerce en infraestructura en la nube: 2.x.x
- MySQL: cualquier versión compatible
¿Cuándo tendría que cambiar el ID de incremento (casos)?
Es posible que tenga que cambiar el ID de incremento de las nuevas entidades de base de datos en estos casos:
- Después de una restauración de copia de seguridad en disco duro en un sitio activo
- Se han perdido algunos registros de pedidos, pero sus ID ya están siendo utilizados por las puertas de enlace de pago (como PayPal) para su cuenta de comerciante actual. Siendo este el caso, las puertas de enlace de pago dejan de procesar nuevos pedidos que tienen el mismo ID, devolviendo el error "ID de factura duplicado"
Pasos previos necesarios
- Busque tiendas y entidades para las que se debe cambiar el nuevo ID de incremento.
- Conéctate a tu base de datos MySQL. Para Adobe Commerce en infraestructura en la nube, al principio, debes SSH a tu entorno.
- Compruebe el valor actual auto_increment para la tabla de secuencia de entidades mediante la siguiente consulta:
SHOW TABLE STATUS FROM `{database_name}` WHERE `name` LIKE 'sequence_{entity_type}_{store_id}';
Ejemplo
Si está comprobando un incremento automático para un pedido en el almacén con ID=1, el nombre de tabla sería:
'sequence_order_1'
Si el valor de la columna auto_increment
es 1234, el siguiente pedido realizado en el almacén con ID=1 tendrá el ID #100001234.
Documentación relacionada
- Configure una conexión a base de datos MySQL remota en nuestra documentación para desarrolladores.
Actualizar entidad para cambiar el ID de incremento
Actualice la entidad con la siguiente consulta:
ALTER TABLE sequence_{entity_type}_{store_id} AUTO_INCREMENT = {new_increment_value};
Ejemplo
Después de ejecutar la siguiente consulta:
ALTER TABLE sequence_order_1 AUTO_INCREMENT = 2000;
el siguiente pedido hecho en la tienda con ID=1 tendrá el ID #100002000.
Pasos recomendados adicionales en el entorno de producción (nube)
Antes de ejecutar la consulta ALTER TABLE
en el entorno de producción de Adobe Commerce en la infraestructura en la nube, se recomienda encarecidamente realizar estos pasos:
- Pruebe todo el procedimiento para cambiar el ID de incremento en el entorno de ensayo
- Cree una copia de seguridad de la base de datos para restaurar la base de datos de producción en caso de error
Documentación relacionada
- Crear volcado de base de datos en la nube en nuestra base de conocimiento de soporte
- SSH para su entorno en nuestra documentación para desarrolladores
- Prácticas recomendadas para modificar tablas de base de datos en el libro de estrategias de implementación de Commerce