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.
Zaloguj się, aby zobaczyć historię rozwiązań
Zaloguj sięZaloguj się, aby korzystać z Mentora AI
Zaloguj się