Трябва да поставите и двете връзки в ниво на изолация на транзакции с възможност за сериализиране, за да избегнете сценария, който описвате, или като зададете tx_isolation
при всяка връзка с:
SET @@tx_isolation = SERIALIZABLE;
или
SET SESSION TRANSACTION ISOLATION LEVEL SERIALIZABLE;
или като зададете глобалното ниво на изолация с:
SET @@global.tx_isolation = SERIALIZABLE;
или
SET GLOBAL TRANSACTION ISOLATION LEVEL SERIALIZABLE;
която се наследява от всяка последваща отворена връзка. На това ниво транзакциите ще блокират всички заявки, ако друга транзакция вече е в ход, т.е. транзакция вече е издала заявка (четене или запис) на същите таблици.
Вижте документацията на mysql за повече подробности.