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

问题描述 投票:1回答:2

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

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

file.sql包含一些初始化DB的SQL查询。

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

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

python mysql
2个回答
2
投票

情况已经如此。

在传递到脚本中的下一行代码之前,execute()命令已经等待命令完全执行。

这意味着在cursor.execute()完成执行之前,您的代码将无法继续。

你的假设是错误的。我假设您的sql执行中出现错误,这就是导致sql被跳过的原因。

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

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


0
投票

我遇到了同样的问题。我在mydb.commit()之后通过调用mycursor.execute解决了它然后,它工作了。但我不确定它是否是艺术建筑。

© www.soinside.com 2019 - 2024. All rights reserved.