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

Blokada poziomu tabeli w trybie hibernacji

Opcja „Wybierz... do aktualizacji” jest obsługiwana w Hibernate przez LockMode.UPGRADE które możesz ustawić na przykład w NamedQuery .

Jednak używanie aplikacji/ręcznego blokowania wierszy tabeli ma kilka wad (zwłaszcza, gdy połączenie z bazą danych zostanie zerwane w połowie transakcji), a Twoja procedura aktualizacji może się bez tego obejść:

  • Rozpocznij transakcję.
  • zaktualizuj zestaw tabel state='PENDING', server_id=1 gdzie state='IN PROGRESS';
  • Zatwierdź transakcję
  • wybierz z tabeli, gdzie state='PENDING' i server_id=1;
  • [przetwarzanie rekordów]

Aby to zadziałało, każdy serwer musi mieć unikalny numer, ale będzie on mniej podatny na błędy i pozwolisz, aby DBMS robił to, w czym powinien być dobry:izolacja (patrz KWAS ).




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Uzyskaj pozycję wiersza w zapytaniu MYSQL

  2. Znajdowanie wolnych miejsc w systemie rezerwacji

  3. PHP Wyodrębnij kody z TextArea i przekaż do Mysql SELECT IN Query

  4. laravel errno 150 ograniczenie klucza obcego jest nieprawidłowo utworzone

  5. mysql wolno przy pierwszym zapytaniu, a potem szybko przy powiązanych zapytaniach