2014-12-04 145 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