Python mysql没有看到数据库中的数据变化

时间:2014-11-26 17:31:27

标签: python mysql

我需要一些关于python和mysql的帮助。

我有以下代码,它在无限循环中执行:

db = MySQLdb.connect("127.0.0.1","user","password","dbname" )
while True:
    cursor = db.cursor()
    cursor.execute("SELECT * FROM requests WHERE status <> 'Finished'")
    all_pending_requests = cursor.fetchall()
    cursor.close()

第一次运行它时效果很好。但是当我使用像mysql工作台这样的工具或者我自己在终端中键入它时,我会更新一些行并将其状态设置为不是“已完成”的状态。所以通过这样做,下次循环执行时我应该得到那些行,但我什么都没得到。你们现在为什么会发生这种情况呢?

感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

我不确定,但会假设您在MySQL和MySQLdb版本中使用InnoDB存储引擎&gt; = 1.2.0。您需要在反映更改之前提交。从版本1.2.0开始,MySQLdb默认禁用自动提交。确认相同的是here。尝试添加db.commit()作为循环中的最后一行。