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

Powtarzalny poziom izolacji odczytu SELECT vs UPDATE...WHERE

https://dev.mysql.com/doc /refman/8.0/en/innodb-consistent-read.html

Ważnym warunkiem jest zmiana wiersze, Twój spójny odczyt jest „odświeżany”, więc zawiera właśnie wprowadzoną zmianę.

Ale jeśli wykonasz AKTUALIZACJĘ, zawsze będzie to najnowsza wersja wiersza, a nie wersja, którą może wyświetlić spójny odczyt Twojej transakcji. Dlatego twoja UPDATE może nie mieć efektu netto, jeśli inna transakcja już wprowadziła tę zmianę. To jest sytuacja, którą zaobserwowałeś.

W związku z tym Twoja transakcja wydała UPDATE, ale nie zmieniła się wiersz.

Być może nie jest to sposób, w jaki chciałbyś, aby InnoDB się zachowywał, ale mimo to tak właśnie się zachowuje.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Pobierz tylko nazwy kolumn jak w tablicy mysql

  2. Konwertuj skrypt MS SQL na Mysql i Oracle

  3. Wybierz najnowsze dane MySQL, ale wyjątkowy ośrodek

  4. jak posortować kolejność LEFT JOIN w zapytaniu SQL?

  5. Najprostszy przypadek mapy jeden-do-wielu w Hibernate nie działa w MySQL