我有一个程序可以读取文件并将数据插入数据库。我正在python中为该程序编写测试工具。在生成测试数据之前,python线束连接到数据库以获取一些配置参数。然后等待10秒钟以允许正在测试的程序处理文件并修改数据库。延迟后,如果我尝试从数据库中读取值,则它们不存在。如果我打开第二个终端并通过命令行检查它们不在那里。一旦我终止我的Python测试工具,数据就会插入到数据库中。似乎MySQLdb锁定表不允许我插入数据。如何让MySQLdb释放对表的锁定
TL;博士 我的工作流程看起来像这样
connection = MySQLdb.connect(host="localhost")
cursor = connection.cursor()
cursor.execute(".....")
cursor.close()
connection.commit()
connection.close()
cursor = None
connection = None
sleep(10)
connection = MySQLdb.connect(host="localhost")
cursor = connection.cursor()
cursor.execute(".....")
cursor.close()
connection.commit()
connection.close()
cursor = None
connection = None
sleep(10)
重复以上内容以检查我的其他程序应该插入的数据
答案 0 :(得分:3)
您需要在connection.commit()
之前cursor.close()
。
请注意,MySQL实际上并不支持游标 - Python包装器会模仿它们。这可能导致您的代码无法以意想不到的方式工作,例如此示例。