[僅限PaaS]{class="badge informative" title="僅適用於雲端專案(Adobe管理的PaaS基礎結構)和內部部署專案的Adobe Commerce 。"}

變更增量ID

本文討論如何使用ALTER TABLE SQL陳述式變更特定Commerce存放區中Commerce資料庫(DB)實體(訂單、發票、銷退折讓單等)的增量ID。

受影響的版本

  • Adobe Commerce (內部部署): 2.x.x
  • 雲端基礎結構上的Adobe Commerce: 2.x.x
  • MySQL: 任何支援的版本

您何時需要變更增量ID

在下列情況下,您可能需要變更新DB實體的增量ID:

  • 在即時網站上進行硬備份還原之後
  • 有些訂單記錄已遺失,但付款閘道(例如PayPal)已使用其ID代管您目前的商家帳戶。 在這種情況下,付款閘道會停止處理具有相同ID的新訂單,傳回「重複發票識別碼」錯誤
INFO
您也可以在PayPal的「付款接收偏好設定」中,允許每個商業發票識別碼進行多項付款,以修正PayPal的付款閘道問題。 請參閱PayPal閘道拒絕的要求 — ​知識庫​_中的重複發票問題_。

必備條件步驟

  1. 尋找應變更新增量ID的存放區和實體。

  2. 連線至您的MySQL資料庫。
    針對雲端基礎結構上的Adobe Commerce,您首先需要使用SSH連線至您的環境。

  3. 使用下列查詢檢查實體序號表的目前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一起下個訂單的識別碼將為'#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的整個程式
  • [建立DB備份]以在失敗時還原您的生產DB

[任何支援的版本]

recommendation-more-help
386822bd-e32c-40a8-81c2-ed90ad1e198c