2014-12-04 60 views
0

我創建瞭如下表:LOAD DATA LOCAL INFILE跳過行,而不警告

CREATE TABLE table_name 
(
primaryid INT PRIMARY KEY, 
caseid INT, 
pt varchar(80) 
); 

這裏是我的數據是什麼樣子:使用下面的語句

primaryid$caseid$pt 
100640841$10064084$Pulmonary embolism 
32990183$3299018$Pyrexia 
32990183$3299018$Rash maculo-papular 
32990183$3299018$Swelling face 
35387833$3538783$Obesity 
375988510$3759885$Gastric polyps 
375988510$3759885$Gastritis atrophic 

我已加載它到MySQL :

LOAD DATA LOCAL INFILE '/path/to/file/input.txt' INTO TABLE table_name FIELDS TERMINATED BY '$' LINES TERMINATED BY '\n' IGNORE 1 LINES (primaryid, caseid,pt) ; 

,我得到的結果:

Query OK, 171925 rows affected (2.75 sec) 
Records: 545256 Deleted: 0 Skipped: 373331 Warnings: 0 

有人可以告訴我我要去哪裏嗎? 爲什麼373331記錄被跳過並且沒有警告?

這是數據文件的語法問題還是問題,或兩者兼而有之?

回答

1

您已將primaryid列定義爲PRIMARY KEY,這意味着它必須是唯一。僅在您的樣品記錄中,有三條線32990183primaryid。只有其中一個記錄會被加載,其餘的將被跳過。

您或者需要修復您的數據,或者不要讓primaryid成爲主鍵。

+0

就是這樣。謝謝。 – 2014-12-04 17:06:51