加载数据 INFILE 以逗号形式读取外键



我正在尝试使用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 'rn' ;

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 值?如果是这样,如何?为什么?我该如何解决它? 顺便说一下,我正在使用Windows 10

我觉得自己很笨,我才意识到问题所在

LOAD DATA INFILE 'c:/users/jgonz/documents/myproject/labtxt.csv' INTO TABLE labevents FIELDS
TERMINATED BY ',' 
ENCLOSED BY '"' 
LINES TERMINATED BY 'rn' ;

以行结尾的应该是";"而不是","。

最新更新