Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Jak prawidłowo unikać warunków wyścigu Mysql?

Aby to osiągnąć, musisz jakoś zablokować rekord.Dodaj kolumnę ZablokowanaDomyślnie na 0.

Gdy ktoś naciśnie przycisk, wykonaj zapytanie podobne do tego:

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

Po aktualizacji zweryfikuj dotknięte wiersze (w php mysql_affected_rows). Jeśli wartość wynosi 0, oznacza to, że zapytanie niczego nie zaktualizowało, ponieważ kolumna LockedBy nie ma wartości 0, a zatem została zablokowana przez kogoś innego.

Mam nadzieję, że to pomoże



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. PHP do przechowywania obrazów w MySQL czy nie?

  2. Czy symbole wieloznaczne mogą być używane w nazwach tabel dla GRANT w MySQL?

  3. Policz liczbę unikalnych znaków w ciągu

  4. Jak zrobić wstawkę wsadową w MySQL

  5. Jak usunąć wszystkie tabele w bazie danych bez usuwania samej bazy danych?