Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Nível de isolamento de leitura repetível SELECT vs UPDATE...WHERE


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

A condição importante é se você alterar as linhas, sua leitura consistente é "atualizada" para incluir a alteração que você acabou de fazer.

Mas se você UPDATE, é sempre feito para a versão mais recente da linha, não para a versão que a leitura consistente da sua transação pode visualizar. Portanto, seu UPDATE pode não ter efeito líquido, se outra transação já tiver feito essa alteração. Essa é a situação que você observou.

Portanto, sua transação emitiu uma ATUALIZAÇÃO, mas não alterou a fila.

Talvez não seja assim que você gostaria que o InnoDB se comportasse, mas é como ele se comporta.