Mysql
 sql >> Database >  >> RDS >> Mysql

Livello di isolamento di lettura ripetibile SELECT vs UPDATE...WHERE

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

La condizione importante è se cambia le righe, la tua lettura coerente viene "aggiornata", quindi include la modifica appena apportata.

Ma se AGGIORNA, viene sempre effettuata la versione più recente della riga, non la versione che la lettura coerente della tua transazione può visualizzare. Pertanto il tuo AGGIORNAMENTO potrebbe non avere alcun effetto netto, se un'altra transazione ha già apportato tale modifica. Questa è la situazione che hai osservato.

Pertanto la tua transazione ha emesso un AGGIORNAMENTO ma non è stata modificata la riga.

Forse non è così che vorresti che InnoDB si comportasse, ma è comunque come si comporta.