2017-11-30 1 views
2

In MySQL (insbesondere 5.5) scheint es, dass wir zwei verschiedene Methoden haben, um die Transaktionsisolation Ebene zu setzen. Ich möchte nur wissen, ob ich Recht habe in der Annahme, dassSET tx_isolation versus SET TRANSACTION ISOLATION LEVEL

SET TRANSACTION ISOLATION LEVEL REPEATABLE READ 

tut genau das gleiche wie

SET tx_isolation = 'REPEATABLE-READ' 

und dass dies für die anderen möglichen Isolationsstufen als auch wahr ist.

EDIT 1

ich nicht genau genug gewesen sein. @ Danihps Antwort ist richtig, wenn ich meine Frage stelle. Aber eigentlich wollte ich über

SET SESSION TRANSACTION ISOLATION LEVEL REPEATABLE READ 

gegen

SET SESSION tx_isolation = 'REPEATABLE-READ' 

(beachten Sie die SET SESSION statt SET) fragen.

Sind sie genau gleich?

Antwort

2

Server-Systemvariablen:

können Sie SET tx_isolation = 'REPEATABLE-READ' verwenden, um Standardisolationsstufe auf Serversystemvariablen gesetzt. "Der MySQL-Server verwaltet viele Systemvariablen, die angeben, wie er konfiguriert ist" Diese Variable legt die Standardtransaktionsebene fest.

Aktuelle Transaktion:

können Sie SET TRANSACTION ISOLATION LEVEL REPEATABLE READ verwenden Isolationsstufe von Standard neue Ebene auf Ihrer aktuellen Transaktion zu ändern.

Hinweis:.

"transaction_isolation wurde in MySQL 5.7.20 als Alias ​​für tx_isolation hinzugefügt, die nun veraltet und wird in MySQL 8.0 entfernt Anwendungen angepasst werden sollten transaction_isolation bevorzugt gegen tx_isolation zu verwenden . "

Referenzen:

Herausgegeben

Sie können transactions verwenden, um mehrere Anweisungen als einzelne Operation einzukapseln.Wenn Sie start a transaction, gerade zu dieser Zeit, können Sie Isolationsstufe für diese neue Transaktion ändern:

START TRANSACTION; 
/** change isolation level here with SET TRANSACTION statement 
to avoid default isolation level **/ 
SELECT @A:=SUM(salary) FROM table1 WHERE type=1; 
UPDATE table2 SET [email protected] WHERE type=1; 
COMMIT; 
+0

Ich habe meine Frage aktualisiert. Entschuldigung, dass ich nicht genau genug war. Könnten Sie bitte einen kurzen Kommentar zum bearbeiteten Teil abgeben? (Akzeptiere deine Antwort trotzdem). – Binarus