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

MySqlDB de Python ne reçoit pas de ligne mise à jour

C'est une table InnoDB, n'est-ce pas ? InnoDB est un moteur de stockage transactionnel. Définir autocommit sur true corrigera probablement ce problème pour vous.

conn.autocommit(True)

Vous pouvez également modifier le niveau d'isolement des transactions. Vous pouvez en savoir plus à ce sujet ici :http://dev .mysql.com/doc/refman/5.0/en/set-transaction.html

La raison de ce comportement est qu'à l'intérieur d'une même transaction, les lectures doivent être cohérentes. Toutes les lectures cohérentes au sein d'une même transaction lisent l'instantané établi par la première lecture. Même si votre script ne lit que la table, cela est également considéré comme une transaction. Il s'agit du comportement par défaut dans InnoDB et vous devez le modifier ou exécuter conn.commit() après chaque lecture.

Cette page explique cela plus en détail :http:/ /dev.mysql.com/doc/refman/5.0/en/innodb-consistent-read.html