如何在python程序中运行复杂的sql脚本?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了如何在python程序中运行复杂的sql脚本?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1373字,纯文字阅读大概需要2分钟。
内容图文
![如何在python程序中运行复杂的sql脚本?](/upload/InfoBanner/zyjiaocheng/903/0887c25f01bb47aeb2283a3fc10cb2cf.jpg)
我有一个大的SQL脚本来创建我的数据库(多个表,触发器等等.使用MySQL),我需要在python程序中执行该脚本.我的旧代码做到了这一点:
sql_file = open(os.path.join(self.path_to_sql, filename), 'r')
sql_text = sql_file.read()
sql_stmts = sql_text.split(';')
for s in sql_stmts:
cursor.execute(s)
这工作正常,直到我开始在我的sql脚本中包含触发器.因为我现在需要更改分隔符;为了支持每个中包含多个SQL语句的触发器,我的代码将每个语句拆分为自己的字符串不再有效,因为“分隔符”|我的脚本中的行无法正确拆分,我从cursor.execute获得语法错误.
所以,我需要一些方法来告诉mysqldb一次执行整个sql脚本,而不是单独的sql语句.我试过这个:
sql_file = open(os.path.join(self.path_to_sql, filename), 'r')
sql_text = sql_file.read()
cursor.execute(sql_text)
但是,当我尝试运行该代码时,我收到以下错误:
ProgrammingError:(2014年,“命令不同步;您现在无法运行此命令”)
我的Google-fu告诉我这是因为Python mysqldb包不支持发送到cursor.execute()的复杂SQL语句.
那我该怎么做呢?我真的想在Python中找到一种方法来完成这项工作,这样代码就可以保持完全可移植性.我们有几个程序员在Eclipse中处理这个项目,一些在Windows上,一些在Mac上,代码也需要在Linux生产服务器上工作.
如果我不能使用Python代码来实际运行SQL,我怎么能告诉Python启动一个单独的程序来执行它?
解决方法:
(不是python解决方案)你可以使用
os.system('mysql < etc')
编辑(python解决方案):
如果您按行分解查询,则可以关闭并重新打开游标并按行执行.
redit:对不起,只是浏览了你的第一段.好像你刚开始做这种事情.
内容总结
以上是互联网集市为您收集整理的如何在python程序中运行复杂的sql脚本?全部内容,希望文章能够帮你解决如何在python程序中运行复杂的sql脚本?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。