我创建了下表:
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条记录并且没有警告?
这是语法问题还是数据文件问题,或两者兼而有之?
答案 0 :(得分:1)
您已将primaryid
列定义为PRIMARY KEY
,这意味着它必须是唯一。仅在您的示例记录中,有三行32990183
为primaryid
。只会加载其中一条记录,其余记录将被跳过。
您需要修复数据,或者不要将primaryid
作为主键。