MySQLdb Python 问题 刷新数据库

0 投票
2 回答
3037 浏览
提问于 2025-04-16 14:21

我写了一个Python守护进程,用来读取数据库……我做了以下操作:

db.connect('localhost', user, pass, database)
while true:
    cursor = db.cursor()
    sql = "SELECT id FROM task WHERE status='pending'"
    r = cursor.execute(sql)
    if r != 0:
        result = cursor.fetchall()
        #.....

问题是:当数据库发生变化时,守护进程没有检测到……需要手动刷新……我该怎么办呢??

谢谢!!

2 个回答

0

这只是我的一个猜测,因为我没有看到你完整的代码。不过,由于你在循环外面连接数据库,所以对database的任何修改都不会让db重新连接。

再说一次,这只是个猜测,我不确定你是否在使用线程,或者这个变化是怎么和后台进程一起工作的……等等。

0

我解决了这个问题,方法是在脚本的最后激活提交:

db.autocommit(True)

感谢所有的朋友们

撰写回答