如何等待MySQLdb游标完成所有查询

时间:2011-02-09 18:04:47

标签: python mysql

我正在尝试运行以下代码:

with open('file.sql') as sqlFile:
    sql = sqlFile.read()
    cursor.execute(sql)

file.sql包含一些初始化数据库的SQL查询。

但是,此代码在所有查询继续之前完成工作。这个脚本完成后,它们将在几秒钟内完成。

我怎么能等到所有查询都继续进行?

2 个答案:

答案 0 :(得分:2)

情况已经如此。

execute()命令已经等待命令完全执行,然后再转到脚本中的下一行代码。

这意味着您的代码在cursor.execute() 完成执行之前不会继续。

你的假设是错误的。我假设你在sql执行中遇到错误,这就是导致跳过sql的原因。

例如,cursor.execute()通常无法运行多个SQL语句,因此您可能需要将文件拆分为多个语句并多次调用cursor.execute(),每个语句一个。

请删除可能隐藏上述代码错误的所有try / except子句,并提供您获得的完整错误追溯,如果不是这样的话。

答案 1 :(得分:0)

我遇到了同样的问题。 我在mydb.commit()之后致电mycursor.execute解决了这个问题 然后,它起作用了。 但是我不确定这是否是传统的手工艺品。