Ändern der Inkrement-ID für eine DB-Entität (Bestellung, Rechnung, Kreditkarte usw.) in einem bestimmten Store
In diesem Artikel wird beschrieben, wie Sie die Inkrement-ID für eine Adobe Commerce-Datenbank-Entität (DB) (Bestellung, Rechnung, Kreditmemo usw.) in einem bestimmten Adobe Commerce-Store mithilfe der SQL-Anweisung ALTER TABLE
ändern.
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.
Erforderliche Schritte
- Suchen Sie Stores und Entitäten, für die die neue Inkrement-ID geändert werden soll.
- Verbinden Sie mit Ihrer MySQL-DB. Für Adobe Commerce in der Cloud-Infrastruktur müssen Sie zunächst SSH in Ihrer Umgebung eingeben.
- Ü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
- Richten Sie eine Remote-MySQL-Datenbankverbindung ein in unserer Entwicklerdokumentation.
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};
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
- Erstellen Sie einen Datenbank-Dump auf Cloud in unserer Support-Wissensdatenbank
- SSH in Ihrer Umgebung in unserer Entwicklerdokumentation
- Best Practices für die Änderung von Datenbanktabellen im Playbook für die Commerce-Implementierung