我对 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 也得到相同的结果。