2012-02-05 90 views
1

我有一個包含超過一百萬個插入語句的sql文件。 MySQL管理的官方工具由於其大小而無法打開它。是否可以使用BASH腳本插入記錄?如何將超過一百萬條記錄插入MySQL數據庫?

我到目前爲止嘗試過,但它不起作用。

while read line 
do 
    mysql -u root --password=root << eof 
    use dip; 
    $line; 
    eof 
done < $1 

回答

3
mysql -u root --password=root <mysqlfile.sql 
+0

很好的解決方案。我只需要添加'-D dip'來選擇我想要的數據庫。 – user219882 2012-02-05 15:36:07

+0

@Tomas,對,我沒有閱讀比'mysql'更多的行,因此我們假設你有一切在調用,對不起。 – 2012-02-05 16:31:38

1

試試這個:

while read line 
do 
    mysql -u root --password=root -c "$line" 
done < $1 

注:
如果SQL包含雙引號("),yo'll不得不逃離他們 如果SQL語句去多行,你必須弄清楚

這種方法的優點是每一行都得到自己的事務,而如果喲你把整個文件都放進去了,它可能會把日誌文件變成這麼大的變化集

+0

我認爲你可以通過命令行控制自動提交模式。 – 2012-02-05 16:31:00

相關問題