来自 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中文网其他相关文章!