Hallo,
wir haben gerade ein Problem bei einem Kundenshop mit der Anzahl der Artikelpreise. Aufgrund der sehr differenziert kalkulierten Rabattstruktur in der Warenwirtschaft des Kunden werden per Schnittstelle über die Shopware-API sehr viele Preise übertragen. Aktuell sind etwa 100 Millionen Preise in der Shopdatenbank. Da immer wieder neue Preise hinzukommen und alte verfallen, zählen die IDs in der Preistabelle mittlerweile bis etwa 4.3 Milliarden. Das Feld ist mit INT(11) typisiert und macht folglich bei dieser Anzahl dicht und lässt keine weiteren Einträge zu.
Die Schnittstelle gibt folgenden Fehler zurück:
SQLSTATE[22003]: Numeric value out of range: 167 Out of range value for column ‚id‘ at row 1
2021-03-01 10:28:16 Artikel „659568“ konnte nicht hinzugefügt/aktualisiert werden: An exception occurred while executing ‚INSERT INTO s_articles_prices (articleID, articledetailsID, pricegroup, from
, to
, price, pseudoprice, percent) VALUES (?, ?, ?, ?, ?, ?, ?, ?)‘ with params [420950, 442249, „EK“, 1, „beliebig“, 2514, 0, 0]:
Bisherige Analysen / Geprüfte Punkte:
In der Shop-Datenbank-Tabelle: s_articles_prices liegt der ID-Zähler bereits bei 4.294.966.866 , es lassen sich per Api und auch per mysql-admin keine weiteren Datensätze hinzufügen.
Ist es möglich den Fehler durch Erhöhung des Datenfeld-Types INT von 11 auf 12 oder noch weiter die Grenze zu erhöhen? Spielt der Shop hier uneingeschrängt mit - Spielt diese Grenze auch in den Core-Funktionen von Shopware ein Rolle oder kann die DB hier modifizert werden?