#796

Δέσμευσε απόθεμα μόνο αν είναι πραγματικά διαθέσιμο

Ένας χρήστης πρόσθεσε ένα είδος στο καλάθι του — το backend πρέπει να δεσμεύσει τρεις μονάδες στο απόθεμα, αλλά μόνο αν υπάρχει πραγματικά αρκετό απόθεμα. Αν κάνεις «διάβασε απόθεμα → έλεγξε → γράψε» ως ξεχωριστές εντολές, δύο παράλληλες συναλλαγές μπορούν να δουν τον ίδιο αριθμό και να δεσμεύσουν και οι δύο την τελευταία μονάδα. Ένα μόνο υπό συνθήκη update το λύνει αυτό ατομικά: προσπάθησε να αυξήσεις το reserved κατά τρία για το προϊόν με id 1, αλλά μόνο όταν το qty - reserved είναι τουλάχιστον 3. Αν δεν ενημερωθεί καμία γραμμή — επίστρεψε «εξαντλημένο» στον χρήστη.

Μόνο INSERT/UPDATE/DELETE — δεν χρειάζεται τελικό SELECT.

Το αποτέλεσμα του ερωτήματός σας θα εμφανιστεί εδώ