變更資料庫實體(訂單、發票、銷退折讓單等)的增量ID 於特定商店

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

受影響的版本

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

您何時需要變更增量ID (案例)

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

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

必備條件步驟

  1. 尋找應變更新增量ID的存放區和實體。
  2. 連線至您的MySQL資料庫。 針對雲端基礎結構上的Adobe Commerce,您首先需要SSH連線至您的環境
  3. 使用下列查詢來檢查實體序清單目前的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

生產環境(雲端)的其他建議步驟

在雲端基礎結構上的Adobe Commerce的生產環境上執行ALTER TABLE查詢之前,我們強烈建議您執行下列步驟:

  • 在中繼環境中測試變更增量ID的整個程式
  • 建立資料庫備份,以便在失敗時還原您的生產資料庫

相關檔案

recommendation-more-help
8bd06ef0-b3d5-4137-b74e-d7b00485808a