2012-04-21 88 views
0

我想解析一個大的sql文件到csv文件。我曾考慮過在PHP中使用fread,但無法弄清楚sql是否被行分隔... bc我假設fread正在將數據加載到RAM中,並且不起作用。什麼是解析一個巨大的sql文件的最佳方法

有關如何快速將sql轉換爲csv的任何想法? (也是我在不同的機器上運行,比我的數據庫是...所以我不能導出爲csv不幸)。

+0

這是什麼SQL文件?來自MySQL數據轉儲的INSERT語句?格式將取決於來源。 – 2012-04-21 20:55:36

+0

你能夠查詢實際的數據庫而不是解析sql文件嗎? – bricriu 2012-04-21 20:56:45

+0

我可以查詢數據庫...但是它非常大。我試過mysqldump,但是製表符分隔文件選項只適用於與db相同的服務器。 – user1179295 2012-04-21 21:15:32

回答

0

安裝在本地機器上的MySQL。現在你可以導入sql文件,然後自由導出爲csv或任何你想要的。

1

「大」 - 這對您意味着什麼。 您可以保存到服務器上的文件(機器數據庫正在運行)並壓縮/下載。

的exaple:

SELECT name,lastname,age FROM profile 

查詢返回mysql表的三列。現在重定向/打印到文件中:

SELECT name,lastname,age FROM profile INTO OUTFILE '/tmp/userdata.txt' 

這將在上述語句中將數據輸出到傳遞的文件中。 以CSV格式條款的輸出數據添加更多選項查詢如下:

SELECT name,lastname,age FROM profile INTO OUTFILE '/tmp/userdata.txt' 
    FIELDS enclosed by '"' separated by "," LINES TERMINATED BY '\n' 

original post

+0

4500萬行......如果我嘗試選擇所有內容,我會崩潰數據庫。我正在使用aws的RDS,這意味着我不能將任何東西保存到運行數據庫的服務器上......我認爲自從我從RDS中導出後,我僅限於轉換。 – user1179295 2012-04-21 21:13:58

相關問題