sql >> Base de Datos >  >> RDS >> Mysql

Cómo evitar correctamente las condiciones de carrera de Mysql

Para lograr esto, deberá bloquear el registro de alguna manera. Agregue una columna LockedBy predeterminada a 0.

Cuando alguien presione el botón, ejecute una consulta similar a esta:

ACTUALIZAR tabla SET LockedBy=WHERE LockedBy=0 e id=;

Después de la actualización, verifique las filas afectadas (en php mysql_affected_rows). Si el valor es 0, significa que la consulta no actualizó nada porque la columna LockedBy no es 0 y, por lo tanto, la bloqueó otra persona.

Espero que esto ayude