Ändern der Inkrement-ID für eine DB-Entität (Bestellung, Rechnung, Kreditkarte usw.) in einem bestimmten Geschäft

In diesem Artikel wird beschrieben, wie Sie die Inkrement-ID für eine Adobe Commerce-Datenbank-Entität (DB) ändern (Bestellung, Rechnung, Kreditmemo usw.) in einem bestimmten Adobe Commerce-Store, der die SQL-Anweisung ALTER TABLE verwendet.

Betroffene Versionen

  • Adobe Commerce vor Ort: 2.x.x
  • Adobe Commerce in Cloud-Infrastruktur: 2.x.x
  • MySQL: beliebige unterstützte Version

Wann müssen Sie die Inkrement-ID ändern (Fälle)?

In diesen Fällen müssen Sie möglicherweise die Inkrement-ID für neue DB-Entitäten ändern:

  • Nach einer Sicherung auf einer Live-Site
  • Einige Bestelldatensätze sind verloren gegangen, aber ihre IDs werden bereits von Payment Gateways (wie PayPal) für Ihr aktuelles Merchant-Konto verwendet. In diesem Fall stoppen die Zahlungswege die Verarbeitung neuer Bestellungen mit denselben IDs und geben den Fehler "Rechnungskennung duplizieren"zurück.
NOTE
Sie können auch das Problem mit dem Payment Gateway für PayPal beheben, indem Sie mehrere Zahlungen pro Rechnungskennung in PayPal's Payment Receiving Preferences zulassen. Siehe PayPal Gateway-Anfrage abgelehnt - Problem mit doppelten Rechnungen in unserer Support-Wissensdatenbank.

Erforderliche Schritte

  1. Suchen Sie Stores und Entitäten, für die die neue Inkrement-ID geändert werden soll.
  2. Verbinden Sie mit Ihrer MySQL-DB. Für Adobe Commerce in der Cloud-Infrastruktur müssen Sie zunächst SSH in Ihrer Umgebung eingeben.
  3. Überprüfen Sie den aktuellen Wert für auto_increment für die Entitätssequenztabelle mithilfe der folgenden Abfrage:
SHOW TABLE STATUS FROM `{database_name}` WHERE `name` LIKE 'sequence_{entity_type}_{store_id}';

Beispiel

Wenn Sie eine automatische Inkrementierung für eine Bestellung im Speicher mit ID=1 überprüfen, lautet der Tabellenname:

'sequence_order_1'

Wenn der Wert der Spalte "auto_increment"den Wert "1234"hat, erhält die nächste Bestellung, die im Speicher mit "ID=1"platziert wird, den Wert "ID #10001234".

Verwandte Dokumentation

Entität aktualisieren, um die Inkrement-ID zu ändern

Aktualisieren Sie die Entität mithilfe der folgenden Abfrage:

ALTER TABLE sequence_{entity_type}_{store_id} AUTO_INCREMENT = {new_increment_value};
WARNING
Wichtig: Der neue Inkrementwert muss größer als der aktuelle sein, nicht kleiner!

Beispiel

Nach Ausführung der folgenden Abfrage:

ALTER TABLE sequence_order_1 AUTO_INCREMENT = 2000;

Die nächste Bestellung, die im Store mit ID=1 platziert wird, hat die ID #10002000.

Zusätzliche empfohlene Schritte in der Produktionsumgebung (Cloud)

Bevor Sie die ALTER TABLE -Abfrage in der Produktionsumgebung von Adobe Commerce in der Cloud-Infrastruktur ausführen, empfehlen wir dringend, die folgenden Schritte auszuführen:

  • Testen Sie das gesamte Verfahren zum Ändern der Inkrement-ID in Ihrer Staging-Umgebung.
  • Erstellen Sieeine DB-Sicherung, um im Falle eines Fehlers Ihre Produktions-DB wiederherzustellen.

Verwandte Dokumentation

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