Ändern der Inkrement-ID für eine DB-Entität (Bestellung, Rechnung, Gutschrift usw.) in einem bestimmten Geschäft
In diesem Artikel wird beschrieben, wie Sie die Inkrement-ID für eine Adobe Commerce-Datenbankentität (DB) (Bestellung, Rechnung, Gutschrift usw.) in einem bestimmten Adobe Commerce Store mithilfe der ALTER TABLE
SQL-Anweisung ändern.
Betroffene Versionen
- Adobe Commerce On-Premise: 2.x.x
- Adobe Commerce auf Cloud-Infrastruktur: 2.x.x
- MySQL: Beliebige unterstützte Version
Wann müssten Sie die Inkrement-ID (Fälle) ändern?
Möglicherweise müssen Sie in folgenden Fällen die Inkrement-ID für neue DB-Entitäten ändern:
- Nach einer Hard Backup-Wiederherstellung auf einer Live Site
- Einige Auftragsdatensätze sind verloren gegangen, aber ihre IDs werden bereits von Zahlungs-Gateways (wie PayPal) für Ihr aktuelles Händlerkonto verwendet. In diesem Fall verarbeiten die Zahlungs-Gateways keine neuen Bestellungen mehr, die dieselben IDs haben, sondern geben den Fehler „Rechnungsduplikat-ID“ zurück
Vorausgesetzte Schritte
- Suchen Sie nach Stores und Entitäten, für die die neue Inkrement-ID geändert werden soll.
- Verbinden mit Ihrer MySQL-DB. Für Adobe Commerce in der Cloud-Infrastruktur müssen Sie zunächst SSH in Ihre Umgebung.
- Überprüfen Sie den aktuellen auto_increment-Wert 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 Store mit ID=1 überprüfen, würde der Tabellenname wie folgt lauten:
'sequence_order_1'
Wenn der Wert der auto_increment
Spalte 1234 ist, hat die nächste Bestellung im Speicher mit ID=1 die ID #100001234.
Verwandte Dokumentation
- Einrichten einer Remote-MySQL-Datenbankverbindung in unserer Entwicklerdokumentation.
Entität aktualisieren, um 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 dem Ausführen der folgenden Abfrage:
ALTER TABLE sequence_order_1 AUTO_INCREMENT = 2000;
Die nächste Bestellung im Store mit ID=1 hat die ID #100002000.
Weitere empfohlene Schritte für die 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:
- Testen des gesamten Verfahrens zur Änderung der Inkrement-ID in der Staging-Umgebung
- Erstellen Sie ein DB-Backup, um die Produktions-DB bei einem Fehler wiederherzustellen.
Verwandte Dokumentation
- Erstellen eines Datenbank-Dump in der Cloud in unserer Support-Wissensdatenbank
- SSH in Ihre Umgebung in unserer Entwicklerdokumentation
- Best Practices zum Ändern von Datenbanktabellen im Commerce-Implementierungs-Playbook