更改增量ID
本文讨论如何使用ALTER TABLE
SQL语句更改特定Commerce存储中Commerce数据库(DB)实体(订单、发票、贷项通知单等)的增量ID。
受影响的版本
- Adobe Commerce(内部部署):2.x.x
- 云基础架构上的Adobe Commerce:2.x.x
- MySQL: 任何支持的版本
何时需要更改增量ID
在以下情况下,您可能需要更改新数据库实体的增量ID:
- 在Live站点上进行硬备份还原之后
- 某些订单记录已丢失,但支付网关(如PayPal)已使用其ID作为您的当前商家帐户。 在这种情况下,付款网关将停止处理具有相同ID的新订单,并返回“重复发票ID”错误
INFO
您还可以通过在PayPal的“付款接收首选项”中允许每个发票ID多次付款,修复PayPal的付款网关问题。 查看PayPal网关拒绝的请求 — 知识库 中的重复发票问题。
必备步骤
-
查找应更改新增量ID的存储和实体。
-
连接到MySQL数据库。
对于云基础架构上的Adobe Commerce,您首先需要使用SSH连接到环境。 -
使用以下查询检查实体序列表的当前
auto_increment
值:code language-sql 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};
INFO
重要信息:新增量值必须大于当前增量值。
执行以下查询后:
ALTER TABLE sequence_order_1 AUTO_INCREMENT = 2000;
使用ID=1
在商店下单的ID为“#100002000”。
关于云生产环境的其他建议步骤
在云基础架构上的Adobe Commerce的生产环境中执行ALTER TABLE
查询之前,我们强烈建议执行以下步骤:
- 测试在暂存环境中更改增量ID的整个过程
- 创建数据库备份以在失败时还原您的生产数据库
[任何支持的版本]
recommendation-more-help
386822bd-e32c-40a8-81c2-ed90ad1e198c