Sie müssen beide Verbindungen in die Isolationsstufe für serialisierbare Transaktionen versetzen, um das von Ihnen beschriebene Szenario zu vermeiden, indem Sie entweder tx_isolation
festlegen bei jeder Verbindung mit:
SET @@tx_isolation = SERIALIZABLE;
oder
SET SESSION TRANSACTION ISOLATION LEVEL SERIALIZABLE;
oder indem Sie die globale Isolationsstufe festlegen mit:
SET @@global.tx_isolation = SERIALIZABLE;
oder
SET GLOBAL TRANSACTION ISOLATION LEVEL SERIALIZABLE;
die von jeder nachfolgend geöffneten Verbindung vererbt wird. Auf dieser Ebene werden Transaktionen bei allen Abfragen blockiert, wenn bereits eine andere Transaktion im Gange ist, dh. Eine Transaktion hat bereits eine Abfrage (Lesen oder Schreiben) für dieselben Tabellen ausgegeben.
Siehe die MySQL-Dokumentation für weitere Details.