MySQLdb 更新卡住

1 投票
1 回答
1325 浏览
提问于 2025-04-17 14:02

我在用Python的MySQLdb模块做一些简单的查询。当我执行某个UPDATE操作时,它会卡住一段时间,最后出现这个错误:

操作错误 (1205 '锁等待超时,请尝试重新启动事务')

我使用的代码如下:

def unselectAll():
    try:
        db = MySQLdb.connect(host='localhost', user='user', passwd='', db='mydatabase')
        cursor = db.cursor()
        cursor.execute('UPDATE MYTABLE SET Selected=0')
    except MySQLdb.Error, e:
        print 'ERROR ' + e.args[0] + ': ' + e.args[1]

如果我在控制台里执行这个查询,它运行得很好。而且,如果不使用数据库参数,直接在查询中用mydatabase.MYTABLE也不行。

有没有人能帮帮我?

1 个回答

1

这可能是因为你的 UPDATE 操作没有被提交。你有没有试过在连接时设置 autocommit=True 呢?就像下面这样:

db = MySQLdb.connect(host='localhost', user='user', passwd='', db='mydatabase', autocommit=True)

或者甚至可以在你创建连接之后这样做。

db.autocommit(True)

撰写回答