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

MySqlDB do Python não está recebendo linha atualizada


Esta é uma tabela InnoDB, certo? InnoDB é um mecanismo de armazenamento transacional. Definir autocommit como true provavelmente corrigirá esse comportamento para você.
conn.autocommit(True)

Como alternativa, você pode alterar o nível de isolamento da transação. Você pode ler mais sobre isso aqui:http://dev .mysql.com/doc/refman/5.0/en/set-transaction.html

A razão para este comportamento é que dentro de uma única transação as leituras precisam ser consistentes. Todas as leituras consistentes dentro da mesma transação leem o instantâneo estabelecido pela primeira leitura. Mesmo que seu script apenas leia a tabela, isso também é considerado uma transação. Este é o comportamento padrão no InnoDB e você precisa alterá-lo ou executar conn.commit() após cada leitura.

Esta página explica isso com mais detalhes:http:/ /dev.mysql.com/doc/refman/5.0/en/innodb-consistent-read.html