更改数据库实体(订单、发票、贷项通知单等)的增量ID 在特定存储上
本文讨论如何更改Adobe Commerce数据库(DB)实体(订单、发票、贷项通知单等)的增量ID 在特定Adobe Commerce存储上使用ALTER TABLE
SQL语句。
受影响的版本
- Adobe Commerce内部部署:2.x.x
- 云基础架构上的Adobe Commerce:2.x.x
- MySQL:任何支持的版本
您何时需要更改增量ID(案例)
在以下情况下,您可能需要更改新数据库实体的增量ID:
- 在Live站点上进行硬备份还原之后
- 某些订单记录已丢失,但支付网关(如PayPal)已使用其ID作为您的当前商家帐户。 在这种情况下,付款网关将停止处理具有相同ID的新订单,并返回“重复发票ID”错误
NOTE
您还可以通过在PayPal的“付款接收首选项”中允许每个发票ID多次付款,修复PayPal的付款网关问题。 请参阅我们的支持知识库中的PayPal网关被拒绝的请求 — 重复发票问题。
必备步骤
- 查找应更改新增量ID的存储和实体。
- 连接到您的MySQL数据库。 对于云基础架构上的Adobe Commerce,您首先需要SSH连接到您的环境。
- 使用以下查询检查实体序列表的当前auto_increment值:
SHOW TABLE STATUS FROM `{database_name}` WHERE `name` LIKE 'sequence_{entity_type}_{store_id}';
示例
如果您在 ID=1 的存储区中检查订单的自动递增,则表名将是:
'sequence_order_1'
如果auto_increment
列的值为 1234,则在 ID=1 的商店下个订单将具有 ID #100001234。
相关文档
更新实体以更改增量ID
使用以下查询更新实体:
ALTER TABLE sequence_{entity_type}_{store_id} AUTO_INCREMENT = {new_increment_value};
WARNING
重要信息:新增量值必须大于当前增量值,不得小于!
示例
执行以下查询后:
ALTER TABLE sequence_order_1 AUTO_INCREMENT = 2000;
下一个在 ID=1 商店下单的订单将具有 ID #100002000。
有关生产环境(Cloud)的其他建议步骤
在云基础架构上的Adobe Commerce的生产环境中执行ALTER TABLE
查询之前,我们强烈建议执行以下步骤:
- 测试在暂存环境中更改增量ID的整个过程
- 创建数据库备份,以便在出现故障时还原您的生产数据库
相关文档
- 在我们的支持知识库中创建云上的数据库转储。
- 在开发人员文档中SSH到您的环境。
recommendation-more-help
8bd06ef0-b3d5-4137-b74e-d7b00485808a