#796

Készlet lefoglalása csak akkor, ha valóban elérhető

Egy felhasználó kosárba tett egy terméket — a backendnek három egységet kell lefoglalnia a készletből, de csak akkor, ha valóban van elegendő készlet. Ha a «készlet olvasása → ellenőrzés → írás» lépéseket külön utasításokként hajtod végre, két párhuzamos tranzakció ugyanazt a számot láthatja, és mindkettő lefoglalhatja az utolsó egységet. Egyetlen feltételes frissítés ezt atomi módon oldja meg: próbáld meg hárommal növelni a reserved értékét az 1 azonosítójú terméknél, de csak akkor, ha a qty - reserved legalább 3. Ha végül egyetlen sor sem frissül — térj vissza a «nincs készleten» üzenettel a felhasználónak.

Csak INSERT/UPDATE/DELETE — nincs szükség záró SELECT-re.

A lekérdezésed eredménye itt jelenik meg