來自 Python 的 MySQL 查詢產生不一致
您的查詢可能無法檢索最新的數據,因為您沒有提交對資料庫的變更。預設情況下,MySQL 將隔離等級設為“REPEATABLE READ”,這表示相同交易中的後續查詢將查看資料的初始快照,而不是事務期間所做的任何變更。
確保您的資料正常運作-迄今為止,您需要在每次查詢後提交連線。這將完成目前事務並準備下一個事務以從資料庫中獲取最新變更。
這是程式碼的更新版本,其中包含必要的提交:
<code class="python"># 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)</code>
進行此修改,您的程式碼現在將在每個查詢循環期間從資料庫檢索最新資料。
以上是為什麼我的 Python 查詢會傳回不一致的結果?的詳細內容。更多資訊請關注PHP中文網其他相關文章!