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

Repeatable Read Isolationsstufe SELECT vs. UPDATE...WHERE

https://dev.mysql.com/doc /refman/8.0/en/innodb-consistent-read.html

Die wichtige Bedingung ist, ob Sie sich ändern Zeilen, wird Ihr konsistenter Lesevorgang "aktualisiert", sodass er die gerade vorgenommene Änderung enthält.

Aber wenn Sie aktualisieren, wird immer die neueste Version der Zeile verwendet, nicht die Version, die der konsistente Lesevorgang Ihrer Transaktion anzeigen kann. Daher hat Ihr UPDATE möglicherweise keine Nettowirkung, wenn eine andere Transaktion diese Änderung bereits vorgenommen hat. Das ist die Situation, die Sie beobachtet haben.

Daher hat Ihre Transaktion ein UPDATE ausgegeben, sich aber nicht geändert die Reihe.

So möchten Sie vielleicht nicht, dass sich InnoDB verhält, aber es verhält sich trotzdem so.