我以这种方式运行了许多SQL脚本:
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()
?
版本:
MySQL_python-1,2,3- py2.6-MacOSX的-10.6的通用
Kubuntu 10.10
(出于某种原因,在Kubuntu 10.10之后还有一个额外的空行我似乎无法摆脱,可能是一个stackoverflow错误...)
答案 0 :(得分:0)
检查你是否正确升级到1.2.3 ......我记得读过1.2.2有一个导致executemany问题的错误。