gpt4 book ai didi

python - 从python中跟进: Execute . sql文件

转载 作者:太空狗 更新时间:2023-10-29 21:27:08 25 4
gpt4 key购买 nike

一年多以前有人问过这个问题:Execute .sql files that are used to run in SQL Management Studio in python .

我正在用 python 编写一个脚本,该脚本连接到 SQL 服务器并根据大型(几 GB).sql 文件中的 SQL 命令创建和填充数据库。

看起来 SQLCMD 需要下载并安装 SQL Server Express。是否有其他方法可以从 python 执行 .sql 文件,而不需要使用我的脚本的每个人都下载并安装 SQL Server? pyodbc有这个能力吗?

编辑:

这是另一个类似的问题: execute *.sql file with python MySQLdb

同样,解决方案是从命令(在本例中为 mysql.exe)调用实用程序,并将文件列为参数。

在我看来,应该有一种方法可以使用 Python 的 DB API 库来执行此操作,但我还没有找到它,所以我正在寻找一个像 SQLCMD 或 MYSQL 这样的 *.exe,我可以使用它来从命令行运行文件。

附言如果我没有正确看待这个问题,请随时纠正我。也许下面的代码与从命令行运行一样高效:

for line in open('query.sql','r'):
cursor.execute(line)

最佳答案

我发现在 python 中读取文件并使用 pyodbc 批量执行实际上比在外部使用 SQLCMD 实用程序更快(而且我不必在每台运行脚本的计算机上安装 SQLCMD!)。

这是我使用的代码(因为 pyodbc 似乎没有 executescript() 方法):

with open(scriptPath, 'r') as inp:
for line in inp:
if line == 'GO\n':
c.execute(sqlQuery)
sqlQuery = ''
elif 'PRINT' in line:
disp = line.split("'")[1]
print(disp, '\r')
else:
sqlQuery = sqlQuery + line
inp.close()

关于python - 从python中跟进: Execute . sql文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10387892/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com