#796

Reserveer voorraad alleen als die daadwerkelijk beschikbaar is

Een gebruiker heeft een artikel aan zijn winkelwagen toegevoegd — de backend moet drie eenheden in de voorraad reserveren, maar alleen als er daadwerkelijk genoeg voorraad is. Als je «voorraad lezen → controleren → schrijven» als afzonderlijke statements uitvoert, kunnen twee parallelle transacties hetzelfde aantal zien en beide het laatste exemplaar reserveren. Eén voorwaardelijke update lost dit atomair op: probeer reserved met drie te verhogen voor het product met id 1, maar alleen wanneer qty - reserved minstens 3 is. Als er uiteindelijk geen rij is bijgewerkt — geef dan «niet op voorraad» terug aan de gebruiker.

Alleen INSERT/UPDATE/DELETE — geen afsluitende SELECT nodig.

Je queryresultaat verschijnt hier