2013-07-09 44 views
6

我使用MySQL的LOAD DATA INFILE加載CSV文件,但只加載了一半的行。我已經測試過不同的文件,每一行都會加載一半的行。我怎樣才能加載所有的行?MySQL加載數據infile正好加載一半的記錄

這裏是LOAD DATA INFILE SQL:

LOAD DATA INFILE 
    'C:\\Users\\user\\Dropbox\\wamp\\www\\jobdesc\\data\\banp\\pa_class_posn.csv' 
    INTO TABLE pa_class_posn_temp 
    FIELDS TERMINATED BY ',' 
    OPTIONALLY ENCLOSED BY '"' 
    LINES TERMINATED BY '\n' 
    (ID,POSN_CLASS_TITLE,SALARY_GRADE,POSN_CLASS_CODE, 
    RECRUITMENT_TIER,EXEMPT_NONEXEMPT,REVISED); 

這裏是架構:

CREATE TABLE IF NOT EXISTS `pa_class_posn_temp` (
    `ID` int(4) NOT NULL, 
    `POSN_CLASS_TITLE` varchar(36) DEFAULT NULL, 
    `SALARY_GRADE` varchar(4) DEFAULT NULL, 
    `POSN_CLASS_CODE` varchar(5) NOT NULL, 
    `RECRUITMENT_TIER` varchar(6) DEFAULT NULL, 
    `EXEMPT_NONEXEMPT` varchar(10) DEFAULT NULL, 
    `REVISED` varchar(10) DEFAULT NULL, 
    PRIMARY KEY (`ID`), 
    UNIQUE KEY `POSN_CLASS_CODE` (`POSN_CLASS_CODE`) 
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8; 

這是一個非常簡單的(雙行)數據存儲在一個CSV文件集(只有1行將加載):

6682,"A D,Stdnt Hlth&Cnslg Bsn Ops","15","A7078","Tier 1","Exempt","04/19/2013" 
    7698,"AVP,Alumni Relations","17","N8004","Tier 2","Exempt","04/19/2013" 

每行都有CR/LF行尾,但在這裏你看不到它們。另外,在完整的數據集中沒有重複的ID(主鍵),MySQL不會生成任何警告或錯誤。

我在Windows 7上使用WAMP。另外,我不能使用LOCAL關鍵字,因爲這不會在生產服務器上運行,這些代碼最終會生效。

任何幫助或建議,非常感謝。

回答

7

您是否在Windows下生成了csv文件?如果是的話,你可能不得不使用LINES TERMINATED BY '\r\n'

+3

'線路終止'\ r \ n''做了詭計。我錯過了\ r。 **謝謝!** – Grasshopper

+1

簡直不敢相信。成功了! – openwonk