#796

Bestand nur reservieren, wenn er tatsächlich verfügbar ist

Ein Nutzer hat einen Artikel in seinen Warenkorb gelegt — das Backend muss drei Einheiten im Lagerbestand reservieren, aber nur, wenn tatsächlich genug Bestand vorhanden ist. Wenn du «Bestand lesen → prüfen → schreiben» als getrennte Anweisungen ausführst, können zwei parallele Transaktionen dieselbe Zahl sehen und beide die letzte Einheit reservieren. Ein einzelnes bedingtes Update löst das atomar: Versuche, reserved für das Produkt mit der id 1 um drei zu erhöhen, aber nur dann, wenn qty - reserved mindestens 3 ist. Wenn am Ende keine Zeile aktualisiert wurde — gib dem Nutzer «nicht vorrätig» zurück.

Nur INSERT/UPDATE/DELETE — kein abschließendes SELECT erforderlich.

Dein Abfrageergebnis erscheint hier