Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Como evitar corretamente as condições de corrida do Mysql


Para conseguir isso, você precisará bloquear o registro de alguma forma. Adicione uma coluna LockedPor padrão 0.

Quando alguém apertar o botão, execute uma consulta semelhante a esta:

UPDATE tabela SET LockedBy=WHERE LockedBy=0 e id=;

Após a atualização, verifique as linhas afetadas (em php mysql_affected_rows). Se o valor for 0, significa que a consulta não atualizou nada porque a coluna LockedBy não é 0 e, portanto, bloqueada por outra pessoa.

Espero que isto ajude