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