我正在尝试使用load data infile
命令将数据加载到sql表中。 出于测试的目的,我的文件只有一行,但是将来它会有很多很多。 目前的内容是:
LOAD DATA INFILE 'c:/users/jgonz/documents/myproject/labtxt.csv' INTO TABLE labevents FIELDS
TERMINATED BY ','
ENCLOSED BY '"'
LINES TERMINATED BY '\r\n' ;
17871279;60669;86433;50819;“2149-11-09 19:42:00”;8.0;8.0;“nan”;“nans”
其中第二个数字60669是外键。 当使用Load DATA infile
时,我会收到一条错误消息,指出外键约束失败,指向该列,但我知道该列指向的表中存在这样的id。 此外,如果我使用phpMyAdmin的UI上传相同的文件,则根本就存在问题。
为了查找问题,我运行命令show ENGINE INNODB status;
,在latest FOREIGN KEY error
中发现了以下内容
Foreign key constraint fails for table `openmrs`.`labevents`:
,
CONSTRAINT `patient_id` FOREIGN KEY (`patient_id`) REFERENCES `patient` (`patient_id`) ON DELETE RESTRICT ON UPDATE RESTRICT
这是否意味着它正在以逗号(,)的形式读取外部id值? 如果是,如何? 为什么? 我该怎么修复它呢? 顺便说一下,我用的是Windows10
我觉得好笨,我才意识到问题所在
LOAD DATA INFILE 'c:/users/jgonz/documents/myproject/labtxt.csv' INTO TABLE labevents FIELDS
TERMINATED BY ','
ENCLOSED BY '"'
LINES TERMINATED BY '\r\n' ;
终止的by行应为“;” 而不是“,”