我正在尝试运行以下代码:
with open('file.sql') as sqlFile:
sql = sqlFile.read()
cursor.execute(sql)
file.sql包含一些初始化DB的SQL查询。
但是,此代码在所有查询继续之前完成工作。这个脚本完成后,它们将在几秒钟内完成。
我怎么能等到所有查询都继续进行?
情况已经如此。
在传递到脚本中的下一行代码之前,execute()
命令已经等待命令完全执行。
这意味着在cursor.execute()
完成执行之前,您的代码将无法继续。
你的假设是错误的。我假设您的sql执行中出现错误,这就是导致sql被跳过的原因。
例如,cursor.execute()
通常不能运行多个SQL语句,因此您可能必须将文件拆分为多个语句并多次调用cursor.execute()
,每个语句一个。
请删除所有可能隐藏上述代码错误的try
/ except
子句,并提供您获得的完整错误追溯,如果不是这样的话。
我遇到了同样的问题。我在mydb.commit()
之后通过调用mycursor.execute
解决了它然后,它工作了。但我不确定它是否是艺术建筑。