首页  >  文章  >  数据库  >  为什么我的 Python MySQL 查询不断返回相同的数据?

为什么我的 Python MySQL 查询不断返回相同的数据?

Linda Hamilton
Linda Hamilton原创
2024-11-06 12:29:02600浏览

Why Does My Python MySQL Query Keep Returning the Same Data?

从 Python 查询 MySQL 产生相同的数据

从 Python 重复查询 MySQL 数据库以检索动态数据构成了挑战。众所周知,仅在循环中迭代查询不足以从数据库中获取新数据。

您提供的代码说明了此问题:

<code class="python">for i in range(listSize):
    #...
    mycursor = mydb.cursor(dictionary=True)
    mycursor.execute(sql)
    #...</code>

即使尝试使用 fetchall 、 fetchmany 和 fetchone,结果仍然停滞不前。

解决方案:提交连接

要解决此问题,每个查询执行后都必须提交联系。此操作结束正在进行的事务并启动一个新事务,使后续查询能够检测上一个事务期间所做的更改。

<code class="python">while True:
    #...
    mycursor = mydb.cursor(dictionary=True)
    mycursor.execute(sql)
    #...
    mydb.commit()
    #...</code>

隔离级别和可重复读取默认值

这个概念植根于隔离级别。默认情况下,MySQL 对 InnoDB 使用 REPEATABLE READ。这意味着在事务内,后续读取将保留由事务初始读取建立的快照。因此,如果不提交,后续查询将不会捕获任何更改。

以上是为什么我的 Python MySQL 查询不断返回相同的数据?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn