【发布时间】:2012-05-22 13:26:15
【问题描述】:
我有一个 .sql 文件,其中包含一堆 SQL 查询,每个查询跨越多行。我想使用MySQLdb 在 MySQL 中通过 Python 执行这些查询。
sqlite3 has "a nonstandard shortcut" for this purpose called executescript(),但MySQLdb中似乎没有任何等效功能。
我注意到this old question from 2 years ago 提出了同样的问题,但我发现答案并不令人满意。答案基本上是:
使用
subprocess运行mysql命令并将其发送到您的.sql 文件。
这行得通,但它相当不优雅,并且它通过错误处理等引入了不必要的复杂性。
如果每个查询都在一行上,只需分别执行每一行。
但就我而言,它们跨越多行,所以这行不通。
如果每个查询不在一行上,请以某种方式加入它们。
但是,怎么做?我的意思是,我可以很容易地破解一些东西,所以你不需要在这里回答半生不熟的答案,也许这就是我最终要做的,但是否已经有一个成熟的图书馆可以做到这一点?比起 hack,我更愿意使用全面且正确的解决方案。
【问题讨论】:
-
我已经提交了一个涉及解析文件和构建查询的答案,但我认为这就是你所说的“黑客”的意思,所以我删除了它。
标签: python mysql mysql-python