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.