正在编写一个脚本来转换MySQL导入的原始数据,到目前为止,我使用了一个临时文本文件,后来我使用loaddatainfile手动导入了这个文本文件。。。命令。在
现在,我在python脚本中包含了import命令:db = mysql.connector.connect(user='root', password='root',
host='localhost',
database='myDB')
cursor = db.cursor()
query = """
LOAD DATA INFILE 'temp.txt' INTO TABLE myDB.values
FIELDS TERMINATED BY ',' LINES TERMINATED BY ';';
"""
cursor.execute(query)
cursor.close()
db.commit()
db.close()
这很管用但是温度文本必须在不适合我需要的数据库目录中。在
下一个方法是转储文件并直接提交:
^{pr2}$
工作也很好,但需要大约四倍的时间,这太多了。(在第一个版本中使用相同的for construct来生成文本温度)在
我的结论是我需要一个文件和loaddatainfile命令来更快。为了在放置文本文件的地方保持空闲,LOCAL选项似乎很有用。但是对于MySQL连接器(1.1.7),存在一个已知的错误:
mysql.connector.errors.ProgrammingError:1148(42000):此MySQL版本不允许使用所使用的命令
到目前为止,我已经看到使用MySQLdb而不是MySQL连接器是一种解决办法。然而,MySQLdb上的活动似乎很低,python3.3的支持可能永远不会到来。在
loaddatalocalinfire是正确的方法吗?如果是的话,python3.3是否有一个工作连接器可用?在
编辑:开发后,数据库将在服务器上运行,脚本在客户端上运行。在