2016-05-04 519 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