我有一個包含超過一百萬個插入語句的sql文件。 MySQL管理的官方工具由於其大小而無法打開它。是否可以使用BASH腳本插入記錄?如何將超過一百萬條記錄插入MySQL數據庫?
我到目前爲止嘗試過,但它不起作用。
while read line
do
mysql -u root --password=root << eof
use dip;
$line;
eof
done < $1
我有一個包含超過一百萬個插入語句的sql文件。 MySQL管理的官方工具由於其大小而無法打開它。是否可以使用BASH腳本插入記錄?如何將超過一百萬條記錄插入MySQL數據庫?
我到目前爲止嘗試過,但它不起作用。
while read line
do
mysql -u root --password=root << eof
use dip;
$line;
eof
done < $1
mysql -u root --password=root <mysqlfile.sql
試試這個:
while read line
do
mysql -u root --password=root -c "$line"
done < $1
注:
如果SQL包含雙引號("
),yo'll不得不逃離他們 如果SQL語句去多行,你必須弄清楚
這種方法的優點是每一行都得到自己的事務,而如果喲你把整個文件都放進去了,它可能會把日誌文件變成這麼大的變化集
我認爲你可以通過命令行控制自動提交模式。 – 2012-02-05 16:31:00
很好的解決方案。我只需要添加'-D dip'來選擇我想要的數據庫。 – user219882 2012-02-05 15:36:07
@Tomas,對,我沒有閱讀比'mysql'更多的行,因此我們假設你有一切在調用,對不起。 – 2012-02-05 16:31:38