Ä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 ALTER TABLE SQL-Anweisung.

Betroffene Versionen

  • Adobe Commerce vor Ort: 2.x.x
  • Adobe Commerce in Cloud-Infrastruktur: 2.x.x
  • MySQL: any 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 Wissensdatenbank.

Erforderliche Schritte

  1. Suchen Sie Stores und Entitäten, für die die neue Inkrement-ID geändert werden soll.
  2. Verbinden auf Ihre MySQL-DB. Für Adobe Commerce in der Cloud-Infrastruktur müssen Sie zunächst SSH in Ihrer Umgebung.
  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 lautet der Tabellenname:

'sequence_order_1'

Wenn der Wert der auto_increment column is 1234, die nächste Bestellung, die im Store mit ID=1 wird die 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 Geschäft mit ID=1 wird die ID #10002000.

Zusätzliche empfohlene Schritte in der Produktionsumgebung (Cloud)

Vor der Ausführung des ALTER TABLE Abfrage zur Produktionsumgebung von Adobe Commerce in der Cloud-Infrastruktur. Wir empfehlen dringend, die folgenden Schritte auszuführen:

  • Testen Sie das gesamte Verfahren zum Ändern der Inkrement-ID in Ihrer Staging-Umgebung.
  • Erstellen DB-Sicherung zur Wiederherstellung der Produktions-DB im Falle eines Fehlers

Verwandte Dokumentation

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