Mysql
 sql >> Datenbank >  >> RDS >> Mysql

MySQL-Transaktionen und gleichzeitige Einfügungen

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.