我有一个程序可以读取文件并将数据插入到数据库中。我正在用python为该程序编写一个测试工具。python工具连接到数据库以在生成测试数据之前获取一些配置参数。然后等待10秒,以允许被测试的程序处理该文件并修改数据库。在延迟之后,如果我尝试从数据库中读取值,它们将不存在。如果我打开第二个终端并通过命令行检查它们不在那里。一旦我终止我的Python测试工具,数据就被插入到数据库中。看起来MySQLdb锁定了表,不允许我插入数据。如何让MySQLdb释放其对表的锁定
tl;dr我的工作流程如下所示
connection = MySQLdb.connect(host="localhost")
cursor = connection.cursor()
cursor.execute(".....")
cursor.close()
connection.commit()
connection.close()
cursor = None
connection = None
sleep(10)重复上述步骤,检查我的其他程序应该插入的数据
发布于 2011-02-09 09:24:40
你需要在cursor.close()之前做connection.commit()。
请注意,MySQL实际上并不支持游标-- Python包装器模拟游标。这可能会导致您的代码无法以意想不到的方式工作,如本例所示。
https://stackoverflow.com/questions/4937950
复制相似问题