mysql使用load導入csv文件所遇到的問題及解決方法


  • 使用navicat的客戶端插入csv的數據文件,有一種非常簡單的方式,即使用導入向導,直接根據數據匹配即可。

  • 使用load的方式。

      由於本項目中插入數據表量大而且格式統一,故首先使用創建字段create的方式創建表格,再使用load的方式導入數據字段。

 

LOAD DATA INFILE 'D:\\electric\\201503.csv'
INTO TABLE hjqk_mxb_201503
FIELDS TERMINATED BY ','
OPTIONALLY ENCLOSED BY '"'
lines terminated by '\r\n'
ignore 1 lines
(gzdh,ywly,gdlx,ywlb,ssqj,nzdw,zrbm,fwdz,gzdnr,gdxdsj,gdwbsj,slzxy,yhlx,yhbh,lxr,lxrdh,clcs,hfjg, khpy); 

 使用上述代碼插入數據時,總是出現報錯“[Err] 29 - File 'D:\electric\201503.csv' not found (Errcode: 2 - No such file or directory)”,根據http://stackoverflow.com/questions/15166079/mysql-workbench-load-data-local-infile-cannot-find-file-or-directory顯示,發現自己編輯的代碼缺一個local,故修改代碼為:

LOAD DATA LOCAL INFILE 'D:\\electric\\201503.csv'
INTO TABLE hjqk_mxb_201503
FIELDS TERMINATED BY ','
OPTIONALLY ENCLOSED BY '"'
lines terminated by '\r\n'
ignore 1 lines
(gzdh,ywly,gdlx,ywlb,ssqj,nzdw,zrbm,fwdz,gzdnr,gdxdsj,gdwbsj,slzxy,yhlx,yhbh,lxr,lxrdh,clcs,hfjg, khpy); 

  使用上述代碼插入數據時,導入的csv數據總是亂碼,綜合查閱資料才發現自己的代碼缺少轉化為utf-8的代碼行,故修改代碼為:

LOAD DATA LOCAL INFILE 'D:\\electric\\201503.csv'
INTO TABLE hjqk_mxb_201503
character set utf8  
FIELDS TERMINATED BY ','
OPTIONALLY ENCLOSED BY '"'
lines terminated by '\r\n'
ignore 1 lines
(gzdh,ywly,gdlx,ywlb,ssqj,nzdw,zrbm,fwdz,gzdnr,gdxdsj,gdwbsj,slzxy,yhlx,yhbh,lxr,lxrdh,clcs,hfjg, khpy); 

  查閱數據時,發現自己插入數據非常不完整,只要是原文本文件出現一點數據問題,使用load的方式便不再插入數據源。根據http://www.jb51.net/article/18122.htm顯示,修改代碼為:

Load Data LOCAL InFile 'D:\\201503.csv' Into Table hjqk_mxb_201503 
character set utf8 
Fields Terminated By ',' Enclosed By '"' Escaped By '"' Lines Terminated By '\r\n'; 

   數據導入正確,且並未缺少行列。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM