#796

Réserver du stock uniquement s'il est réellement disponible

Un utilisateur a ajouté un article à son panier — le backend doit réserver trois unités en stock, mais uniquement s'il y a réellement assez de stock. Si vous procédez par « lire le stock → vérifier → écrire » en instructions séparées, deux transactions parallèles peuvent voir le même nombre et toutes deux réserver la dernière unité. Une seule mise à jour conditionnelle résout cela de manière atomique : essayez d'augmenter reserved de trois pour le produit dont l'id vaut 1, mais uniquement lorsque qty - reserved vaut au moins 3. Si aucune ligne n'a finalement été mise à jour — renvoyez « rupture de stock » à l'utilisateur.

Uniquement INSERT/UPDATE/DELETE — aucun SELECT final nécessaire.

Le résultat de votre requête apparaîtra ici