#796

Rezervuj zboží, jen když je skutečně dostupné

Uživatel přidal položku do košíku — backend musí na skladě rezervovat tři kusy, ale jen pokud je jich skutečně dost. Pokud uděláš «přečíst zásobu → zkontrolovat → zapsat» jako samostatné příkazy, dvě paralelní transakce mohou vidět stejné číslo a obě rezervovat poslední kus. Jediný podmíněný update to řeší atomicky: zkus zvýšit reserved o tři u produktu s id 1, ale pouze pokud je qty - reserved alespoň 3. Pokud se nakonec žádný řádek neaktualizoval — vrať uživateli «není skladem».

Jen INSERT/UPDATE/DELETE — závěrečný SELECT není potřeba.

Výsledek vašeho dotazu se zobrazí zde