」工欲善其事,必先利其器。「—孔子《論語.錄靈公》
首頁 > 程式設計 > 為什麼我的 Python 查詢會傳回不一致的結果?

為什麼我的 Python 查詢會傳回不一致的結果?

發佈於2024-11-24
瀏覽:916

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