2016-05-04 59 views
0

如何使用pymysql运行插入查询脚本文件?如何使用pymysql运行批量插入查询?

我为大数据做了插入查询脚本文件。 (数据行数:50,000)

文件名是bulkinsert.sql,它包含如下所示的查询。

INSERT INTO test(dt, user, usertype, ip) VALUES 
("2016-05-01", 3103945, , 1, "175.195.249.217"), 
("2016-05-01", 3103946, , 1, "175.195.249.218"), 
("2016-05-01", 3103947, , 1, "175.195.249.219"), 
................ 
................ 
................ 
("2016-05-01", 3104000, , 1, "175.195.249.500"); 

我用pymysql,但我找不到直接插入或运行sql文件的方法。如下所示。

cursor.execute(bulkinsert.sql) 

当我阅读他们的指南时,我必须阅读sql语句并执行它。但我的数据行数太多,无法阅读。他们有什么办法在pymysql中导入或运行sql脚本?

回答

1

如果你不需要输出执行,也许子进程是一种替代方法。 PS:用您自己的替换Password关键字。

from subprocess import Popen, PIPE 
process = Popen(['mysql', db, '-u', user, '-pPassword'], 
       stdout=PIPE, stdin=PIPE) 
output = process.communicate('source ' + filename)[0] 
+0

谢谢你帮助我。当数据库不在本地数据库中时它工作吗? – Bethlee

+0

@Bethlee是的,通过'-h REMOTE_SERVER_IP'添加远程服务器IP选项 – Hooting

+0

我检查了这个选项。谢谢。我还有一个问题,我的本地PC没有安装MySQL。它工作吗? – Bethlee