什么,我以这种方式运行多个SQL脚本:Python的MySQLdb的executemany()的作品在Mac上,确实在Linux上
db_conn = (created earlier)
cursor = db_conn.cursor()
script_file = open(join(script_path, script_name))
script_text = script_file.read()
script_file.close()
num_rows = cursor.executemany(script_text, None)
这就像在我的Mac魅力,但却未能在Linux上,executemany(...)
简单什么都不做并且返回None
。连接设置很好:它们在两个系统上都是相同的,我可以手动执行SQL脚本,即使用mysql命令行客户端。另外,MySQLDB.execute(...)
可以使用较短的SQL语句正常工作,但可能会因存储过程定义中的更改分隔符而失败(无论如何,都会报告有关DELIMITER行的SQL错误)。
有没有人遇到过类似的东西? 是否有人在Linux上成功使用executemany()
?
版本:
- 的Mac OS X 10.6.4
- MySQL的版本14.14 DISTRIB 39年5月1日,对于使用的readline 5.1
MySQL_python-1.2.3苹果darwin9.5.0(I386) -py2.6-MacOSX的-10.6-万向
的Kubuntu 10.10
- MySQL的版本14.14 DISTRIB 49年5月1日,对于Debian的Linux-GNU(i686的)使用readli NE 6.1
- MySQL_python-1.2.3-py2.6 Linux的-i686的 (默认Kubuntu的包是1.2.2,所以我手动升级)
(出于某种原因,有一个多余的空行Kubuntu 10.10后我似乎无法摆脱,可能是一个stackoverflow错误...)
我使用'executemany()',但在应用于许多值的单个SQL语句(如'INSERT')上。我不知道你的'script_text'变量是什么。我一直在使用1.2.2,在linux系统上没有任何问题。 – Danosaure 2010-11-26 02:41:11