Du skal placere begge forbindelser i serialiserbart transaktionsisoleringsniveau for at undgå det scenarie, du beskriver, enten ved at indstille tx_isolation
på hver forbindelse med:
SET @@tx_isolation = SERIALIZABLE;
eller
SET SESSION TRANSACTION ISOLATION LEVEL SERIALIZABLE;
eller ved at indstille det globale isolationsniveau med:
SET @@global.tx_isolation = SERIALIZABLE;
eller
SET GLOBAL TRANSACTION ISOLATION LEVEL SERIALIZABLE;
som arves af enhver efterfølgende åbnet forbindelse. På det niveau vil transaktioner blokere for eventuelle forespørgsler, hvis en anden transaktion allerede er i gang, dvs. en transaktion har allerede udsendt en forespørgsel (læs eller skriv) på de samme tabeller.
Se mysql-dokumentationen for yderligere detaljer.