”工欲善其事,必先利其器。“—孔子《论语.录灵公》
首页 > 编程 > 为什么我的 Python 查询返回不一致的结果?

为什么我的 Python 查询返回不一致的结果?

发布于2024-11-24
浏览:119

Why Are My MySQL Queries from Python Returning Inconsistent Results?

来自 Python 的 MySQL 查询产生不一致

您的查询可能无法检索最新的数据,因为您没有提交对数据库的更改。默认情况下,MySQL 将隔离级别设置为“REPEATABLE READ”,这意味着同一事务中的后续查询将查看数据的初始快照,而不是事务期间所做的任何更改。

以确保您的数据正常运行-迄今为止,您需要在每次查询后提交连接。这将完成当前事务并准备下一个事务以从数据库中获取最新更改。

这是代码的更新版本,其中包含必要的提交:

# Main loop
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 changes!
    mydb.commit()
    print("---")
    sleep(0.1)

通过此修改,您的代码现在将在每个查询循环期间从数据库检索最新数据。

最新教程 更多>

免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。

Copyright© 2022 湘ICP备2022001581号-3