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

La sessione di MySQL Workbench non vede gli aggiornamenti al database

Questa è una vecchia domanda, ma ho ancora lo stesso bug.OP ha menzionato un bug aperto su MySQL Workbench in un altro thread (http://bugs.mysql.com/bug.php?id=69800 ).

Secondo doc (https ://dev.mysql.com/doc/refman/5.7/en/innodb-transaction-isolation-levels.html#isolevel_repeatable-read ), il livello di isolamento predefinito è REPEATABLE-READ.

Ciò significa che viene eseguita un'istantanea del database alla PRIMA lettura della transazione. Ogni altra lettura di questa transazione ti mostrerà i dati dello snapshot.

Quindi è necessario terminare la transazione (commit o rollback) per ottenere un nuovo snapshot alla lettura successiva.

I miei colleghi che hanno impostato MySQL Workbench su AutoCommit non vedono il comportamento di lettura ripetibile. Abbiamo scoperto che è perché dopo ogni SELECT, la transazione viene chiusa e viene creata una nuova istantanea.

Quindi, poiché il bug non è stato ancora corretto, una soluzione alternativa sarebbe:

  • passa all'autocommit per la creazione automatica di nuovi snapshot
  • o commit/rollback dopo ogni SELECT per creare una nuova istantanea