來自 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