Я пытаюсь загрузить данные в таблицу sql с помощью команды LOAD DATA INFILE
. В целях тестирования в моем файле только одна строка, но в будущем ее будет намного больше. На данный момент содержимое выглядит следующим образом:
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
я получаю сообщение об ошибке, указывающее на сбой ограничения внешнего ключа, указывающее на этот столбец, но я знаю, что такой идентификатор существует в таблице, на которую он указывает. Кроме того, если я загружаю тот же файл с помощью пользовательского интерфейса phpmyadmin, проблема вообще возникает.
Пытаясь найти проблему, я запускаю команду 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
Означает ли это, что значение внешнего идентификатора читается как запятая (,)? Если да, то как? Зачем? и как это исправить? Я кстати использую windows 10