Mysql
 sql >> Base de données >  >> RDS >> Mysql

Niveau d'isolement de lecture répétable SELECT vs UPDATE...WHERE

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

La condition importante est si vous changez les lignes, votre lecture cohérente est "rafraîchie" afin d'inclure la modification que vous venez d'apporter.

Mais si vous mettez à jour, il s'agit toujours de la version la plus récente de la ligne, et non de la version que la lecture cohérente de votre transaction peut afficher. Par conséquent, votre MISE À JOUR peut n'avoir aucun effet net, si une autre transaction a déjà effectué ce changement. C'est la situation que vous avez observée.

Par conséquent, votre transaction a émis une MISE À JOUR mais n'a pas changé la ligne.

Ce n'est peut-être pas ainsi que vous voudriez qu'InnoDB se comporte, mais c'est néanmoins ainsi qu'il se comporte.