sql >> Databáze >  >> RDS >> Mysql

Opakovatelné úrovně izolace čtení SELECT vs UPDATE...WHERE

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

Důležitou podmínkou je, pokud se změníte řádků, vaše konzistentní čtení je "obnoveno", takže zahrnuje změnu, kterou jste právě provedli.

Pokud však AKTUALIZUJETE, vždy se provede na nejnovější verzi řádku, nikoli na verzi, kterou může zobrazit konzistentní čtení vaší transakce. Vaše AKTUALIZACE proto nemusí mít žádný čistý účinek, pokud již jiná transakce tuto změnu provedla. To je situace, kterou jste pozorovali.

Vaše transakce proto vydala UPDATE, ale nezměnila řádek.

Možná to není způsob, jakým byste chtěli, aby se InnoDB choval, ale přesto se tak chová.



  1. MySQL:ORDER BY s prázdným datem '0000-00-00' jako poslední, ale zbytek ASC

  2. Jak upravím pole v novém datovém typu PostgreSQL JSON?

  3. vypočítat cenu mezi danými termíny

  4. Provádění matematické operace na dočasném sloupci v SQL