天天看點

Load Data Infile批量導入資料

mysql提供了一個  load data infile xxx into table table_name  的方法來幫助批量的導入資料。這個操作是 select * out to file 操作的逆操作。

大體的使用方式是:

shell>mysql -hxx -uxx -pxx database

mysql>set names utf8;

mysql>load data infile '/path_to_file/xx.csv' into table xx ;

但是在遇到檔案不在mysql目錄中時,會發生 參考資料1 中的錯誤,修正的辦法是使用 local 參數。具體問題是:

出于安全原因,當讀取位于伺服器中的文本檔案時,檔案必須位于資料庫目錄中,或者是全體可讀的。另外,要對伺服器檔案使用LOAD DATA INFILE,您必須擁有FILE權限。

如果指定了LOCAL,則檔案會被客戶主機上的用戶端讀取,并被發送到伺服器。檔案會被給予一個完整的路徑名稱,以指定确切的位置。

例如:

load data local infile '/Users/shiqiang/Desktop/school.csv' into table i_school FIELDS TERMINATED BY ',' LINES TERMINATED BY '\r';

參考資料: