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