Mysql
 sql >> Base de données >  >> RDS >> Mysql

Comment éviter correctement les conditions de concurrence Mysql

Pour y parvenir, vous devrez verrouiller l'enregistrement d'une manière ou d'une autre.Ajouter une colonne VerrouilléPar défaut à 0.

Lorsque quelqu'un appuie sur le bouton, exécute une requête ressemblant à ceci :

Table UPDATE SET LockedBy=WHERE LockedBy=0 et id=;

Après la mise à jour, vérifiez les lignes affectées (dans php mysql_affected_rows). Si la valeur est 0, cela signifie que la requête n'a rien mis à jour car la colonne LockedBy n'est pas 0 et donc verrouillée par quelqu'un d'autre.

J'espère que cela vous aidera