码迷,mamicode.com
首页 > 数据库 > 详细

使用pymysql进行定时查询数据不更新的原因及解决方式

时间:2019-09-11 13:26:30      阅读:244      评论:0      收藏:0      [点我收藏+]

标签:repeat   was   更改   commit   hat   lock   ict   rom   ODB   

用python写了一个小脚本定时查询数据库,输出查询结果并写入文件,发现每次查询的结果都是相同的,但是数据库确实在更新数据。

 

原因:  

REPEATABLE READ
The default isolation level for InnoDB. It prevents any rows that are queried from being
changed by other transactions, thus blocking non-repeatable reads but not phantom reads.
It uses a moderately strict locking strategy so that all queries within a transaction see
data from the same snapshot, that is, the data as it was at the time the transaction started.

重复读

innodb的默认隔离级别。它防止查询的任何行

由其他事务更改,因此阻止不可重复的读取,但不阻止幻象读取。

它使用适度严格的锁定策略,以便事务中的所有查询都可以看到

来自同一快照的数据,即事务启动时的数据。

 

既然知道了原因是查询事务未更新导致的 那就解决一下呗:

  每次查询后更新一下事务,在execute(sql) 之后 进行 commit()操作

  

  

使用pymysql进行定时查询数据不更新的原因及解决方式

标签:repeat   was   更改   commit   hat   lock   ict   rom   ODB   

原文地址:https://www.cnblogs.com/wangbaojun/p/11505540.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!