一年多以前,有人问过这个问题:执行.sql文件,用于在python中的SQL Management Studio中运行.
我正在python中编写一个连接到SQL服务器的脚本,并根据大(几GB).sql文件中的SQL命令创建和填充数据库.
看起来SQLCMD需要下载并安装SQL Server Express.有没有其他方法从python执行.sql文件,而不需要使用我的脚本的每个人下载和安装SQL Server?pyodbc有这种能力吗?
编辑:
这是另一个类似的问题: 使用python MySQLdb执行*.sql文件
在这里,解决方案是从命令(在本例中为mysql.exe)调用实用程序,并将该文件作为参数列出.
在我看来应该有一种方法来使用Python的DB API库之一,但我还没有找到它所以我正在寻找像我可以用来运行文件的SQLCMD或MYSQL这样的*.exe从命令行.
PS如果我没有正确地看这个,请随时纠正我.也许下面的代码与从命令行运行一样有效:
for line in open('query.sql','r'):
cursor.execute(line)
Run Code Online (Sandbox Code Playgroud) 我有一个包含一堆SQL查询的.sql文件,每个查询跨越多行.我想通过Python在MySQL中执行这些查询MySQLdb.
sqlite3为此目的有一个"非标准的捷径"executescript(),但似乎没有任何等效的功能MySQLdb.
我注意到2年前这个老问题同样问题,但我发现答案不尽如人意.答案基本上是:
使用
subprocess运行mysql命令,并将其发送你的.sql文件.
这是有效的,但它相当不优雅,并且它引入了错误处理等不必要的复杂性.
如果每个查询都在一行上,则只需单独执行每一行.
但在我的情况下,它们跨越多行,所以这不起作用.
如果每个查询不在一行上,则以某种方式加入它们.
但是,怎么样?我的意思是,我可以轻松地修改一些东西,所以你不需要在这里回复半生不熟的答案,也许这就是我最终要做的事情,但是已经有一个既定的图书馆这样做了吗?对于全面而正确的解决方案而不是黑客,我会感到更舒服.