https://dev.mysql.com /doc/refman/5.7/en/innodb-autocommit-commit-rollback.html mówi:
Więc kiedy ustawisz autocommit=0 w sesji (nazwij to sesją 1), to domyślnie otwiera się transakcję i pozostawia ją otwartą na czas nieokreślony.
Domyślny poziom izolacji transakcji to REPEATABLE-READ. Tak więc Twoja sesja nie zobaczy odświeżonego widoku zatwierdzonych zmian z pracy innych sesji, dopóki sesja 1 nie zostanie wyraźnie zatwierdzona lub wycofana.
Twoje LOCK TABLES w innej sesji 2 robi spowodować niejawne zatwierdzenie, ale sesja 1 nie widzi wyniku, ponieważ nadal może zobaczyć tylko wyizolowany widok danych ze względu na własną migawkę transakcji.