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

Posted 保军Baojun

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用pymysql进行定时查询数据不更新的原因及解决方式相关的知识,希望对你有一定的参考价值。

用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进行定时查询数据不更新的原因及解决方式的主要内容,如果未能解决你的问题,请参考以下文章

Python通过pymysql连接数据库并进行查询和更新SQL方法封装

Python数据库操作 ---- pymysql教学

mysql 简单的sql优化示例[不定时更新]

python数据库操作pymysql

MySQL常用查询语句汇总(不定时更新.......)

python3 pymysql查询结果包含字段名