¿Cómo asegurarse de que no hay condición de carrera en la base de datos MySQL al incrementar un campo?
¿Cómo evitar una condición de carrera en la base de datos MySQL cuando dos conexiones desean actualizar el mismo registro?
Por ejemplo, la conexión 1 quiere aumentar el contador de "intentos". Y la segunda conexión quiere hacer lo mismo. Ambas conexionesSELECT
el "intento" cuenta, aumenta el valor y ambosUPDATE
"intenta" con el valor aumentado. De repente, "intentos" es solo "intentos + 1" en lugar de ser "intentos + 2", porque ambas conexiones obtuvieron los mismos "intentos" y lo incrementaron en uno.
¿Cómo resolver este problema?