#796

Rezerwuj towar tylko wtedy, gdy faktycznie jest dostępny

Użytkownik dodał produkt do koszyka — backend musi zarezerwować trzy sztuki w magazynie, ale tylko wtedy, gdy zapasów rzeczywiście wystarcza. Jeśli wykonasz «odczyt zapasu → sprawdzenie → zapis» jako osobne instrukcje, dwie równoległe transakcje mogą zobaczyć tę samą liczbę i obie zarezerwować ostatnią sztukę. Pojedyncza warunkowa aktualizacja rozwiązuje to atomowo: spróbuj zwiększyć reserved o trzy dla produktu o id 1, ale tylko gdy qty - reserved wynosi co najmniej 3. Jeśli żaden wiersz nie zostanie zaktualizowany — zwróć użytkownikowi «brak w magazynie».

Tylko INSERT/UPDATE/DELETE — bez końcowego SELECT.

Wynik Twojego zapytania pojawi się tutaj