Disons que vous avez une table avec des numéros gagnants. N'importe lequel de ces nombres est destiné à être seulement "gagné" par une personne. Comment puis-je empêcher 2 demandes Web simultanées qui soumettent les mêmes numéros à la fois vérifier et voir que les numéros sont toujours disponibles et ensuite donner le prix à tous les deux avant que le numéro est marqué comme n'étant plus disponible.Comment empêcher plusieurs requêtes Web de traiter les mêmes enregistrements?
La solution gagnante dans this question me semble être ce que je pensais faire, car elle peut également être appliquée dans la plupart des plates-formes de base de données.
Existe-t-il un autre modèle commun qui peut être appliqué à cela?
vous avez besoin d'une transaction comme ironfroggy dit. Sinon, vous pourriez avoir une autre requête pour obtenir le numéro entre le select et la mise à jour. –
Il n'y a pas de sélection et de mise à jour - juste une seule UPDATE, qui est une transaction implicite. –
Juste curieux si vous connaissez la réponse: Si vous utilisez un SE sans support de transaction (par exemple MyIsam), cela serait-il encore atomique? – troelskn