0

我对 mysql 5.5、python 2.7、pymysql、os x 10.6.8 有一些非常奇怪的事情

我有一个 mysql 表 id,名称,模糊。我已经生成了一个 python 列表,比如

cursor.execute('select id, SOUNDEX(name) from categorie')

result = [i for i in cursor.fetchall()]

然后我想更新模糊字段:

for i in result:
    try:
       cursor.execute("""update categorie set fuzzy='%s' where id='%s' % (i[1], i[0]))
    except pymysql.MySqlError, e:
       print e

执行代码后,我收到任何错误,这对我来说确实意味着,查询已成功执行,没有插入。数据库中没有发生任何变化,但最奇怪的是,在 python 代码执行后,Mysql 服务器不再执行来自任何客户端的任何更新查询:

超过锁定等待超时;尝试重启事务

我只能成功执行选择查询。实际上,必须重新启动 mysql 服务器,然后才能成功执行更新查询,但是一旦我运行 python 查询代码,播放就会重新开始。

我也在窗口机器上的 mysql 服务器上尝试了这个,结果相同。我还尝试使用 MySqlDb 更改 pymysql 也得到相同的结果。

4

0 回答 0