首页 > 数据库 > mysql教程 > 为什么我重复的MySQL查询没有返回最新的数据?

为什么我重复的MySQL查询没有返回最新的数据?

Susan Sarandon
发布: 2024-11-11 03:10:02
原创
1075 人浏览过

Why Are My Repeated MySQL Queries Not Returning the Latest Data?

重复的 MySQL 查询未返回最新数据:通过事务提交解决问题

在 Python 中,在重复查询快速变化的 MySQL 数据库时,确保每个查询检索最新的数据至关重要。但是,有些人可能会遇到这样的问题:尽管数据库正在发生更改,但后续查询仍返回相同的数据。这是由于数据库连接的底层隔离级别所致。

隔离级别的概念决定了事务如何相互隔离。在 MySQL 的默认隔离级别 REPEATABLE READ 的情况下,同一事务中的每个查询都依赖于事务开始时拍摄的数据库快照。这意味着后续查询不会反映事务处于活动状态时所做的任何数据库更改。

要解决此问题,必须在每个查询后提交连接。这将启动一个新事务并确保下一个查询对最新的数据库快照进行操作。下面是一个示例:

<code class="python">while True:
    # SQL query
    sql = "SELECT * FROM table"

    # Read the database, store as a dictionary
    mycursor = mydb.cursor(dictionary=True)
    mycursor.execute(sql)

    # Store data in rows
    myresult = mycursor.fetchall()

    # Transfer data into list
    for row in myresult:
        myList[int(row["rowID"])] = (row["a"], row["b"], row["c"])

        print(myList[int(row["rowID"])])

    # Commit !
    mydb.commit()
    print("---")
    sleep (0.1)</code>
登录后复制

通过在每次查询后提交,连接建立了一个新事务,确保后续的每个查询都会读取最新的数据库快照,从而反映最新的数据库更改。这解决了重复查询始终返回过时数据的问题。

以上是为什么我重复的MySQL查询没有返回最新的数据?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板