Eer*_*ame 6 python mysql select cursor while-loop
我试图通过使用带有 SELECT MAX(id) 的查询来查找 MySQL 数据库中的最新条目。我已经获得了最新的 id,所以我知道查询有效,但现在我想在 while 循环中使用它,所以我每次迭代都会获得最新的条目。
这是我到目前为止:
import pymysql
con = pymysql.connect(host='.....', user='.....',
password='.....', database='.....')
cur = con.cursor()
while True:
query = "SELECT MAX(id) FROM reports"
cur.execute(query)
data = cur.fetchall()
last = (data[0][0])
print(last)
Run Code Online (Sandbox Code Playgroud)
问题是更新数据库后我一直得到相同的结果。例如,现在我有 45 个条目,所以我的脚本在 while 循环中打印 '45'。但是在我向表中添加另一行后,它会继续打印“45”而不是我期望的“46”。当我停止脚本并再次运行它时,它会打印“46”并在我添加另一行后继续打印。
我大约两周前才开始使用 MySQL,所以我对它没有那么多了解。我觉得我在这里错过了一些非常小的东西。我该怎么办?任何帮助将不胜感激。
我遇到了同样的问题,只是想让其他寻求解决方案的人清楚。
将 autocommit 设置为 True 解决了我的问题,并且不需要在每次查询后调用提交。
import pymysql
con = pymysql.connect(host='.....', user='.....',
password='.....', database='.....')
con.autocommit = True
cur = con.cursor()
while True:
query = "SELECT MAX(id) FROM reports"
cur.execute(query)
data = cur.fetchall()
last = (data[0][0])
print(last)
Run Code Online (Sandbox Code Playgroud)