Подозирам, че е свързано сзаключване на процепи иключалки за следващ ключ и разликите в поведението наПОВТОРЯЩО ЧЕТЕНЕ :
Извадките са от MySQL docs:ЗАДАВАНЕ НА TRANSACTION синтаксис
и ЧЕТЕТЕ СЪВЪЗДАВАНО :
Може би OP може да ни каже състоянието на innodb_locks_unsafe_for_binlog system променлива и ако същото заключване се случи, когато настройката на тази променлива се промени.
Също така, ако същото заключване се случи с непоследователни идентификатори, като 18 и 20 , или 18 и 99