Ik zou alleen het productrecord vergrendelen (met selecteer voor update - let op, selecteer vergrendelen in de deelmodus, blokkeer andere gebruikers niet om hetzelfde product te kopen) en voer vervolgens de rest van de bewerking uit. Op deze manier blokkeer ik de aankoop van andere producten niet (terwijl het vergrendelen van de tabel alle schrijfbewerkingen blokkeert, ongeacht of er voor product 1 of product zijn 2) En waarom u max_product_can_sell-eigenschap behoudt in plaats van (of niet samen met) available_quantity eigendom?
Afhankelijk van isolatieniveau. In serialiseerbaar - ja, op lagere niveaus, ik weet het bijna zeker, nee.