Rezervă stocul doar dacă este efectiv disponibil
Un utilizator a adăugat un articol în coș — backend-ul trebuie să rezerve trei unități în inventar, dar numai dacă există efectiv suficient stoc. Dacă faci «citește stocul → verifică → scrie» ca instrucțiuni separate, două tranzacții paralele pot vedea același număr și amândouă pot rezerva ultima unitate.
O singură actualizare condiționată rezolvă acest lucru în mod atomic: încearcă să mărești reserved cu trei pentru produsul cu id-ul 1, dar numai când qty - reserved este cel puțin 3. Dacă niciun rând nu ajunge să fie actualizat — returnează «stoc epuizat» utilizatorului.
Doar INSERT/UPDATE/DELETE — nu este nevoie de un SELECT la final.
Conectează-te pentru a vedea istoricul soluțiilor trimise
Conectează-teConectează-te pentru a folosi Mentorul AI
Conectează-te