Последняя строка моего CSV читает
58,5/3/17,8:30 PM,Jazz L6/7,0,,Thursday,1074,black,
Последняя запятая есть, потому что в последнем поле ничего нет. Но нет возврата каретки после последней строки.
Но я получаю ошибку "row 59 doesn't contain data for all columns"
Так что, если я пойду и поменяю последнюю строку на:
58,5/3/18,8:30 PM,Jazz L6/7,0,,Thursday,1074,black,test
ИЛИ Я должен поставить возврат каретки ... Это сработает.
Вот мой PHP-код, который генерирует запрос:
$query = <<<eof
TRUNCATE TABLE `eventstmp`;
LOAD DATA INFILE '$target'
INTO TABLE `eventstmp`
FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'
LINES TERMINATED BY '\n'
(EventCode,EventDate,GameTime,TeamName1,Versus, TeamName2, AgeGroup, Photographer, TextDescription, Location);
delete from `eventstmp` limit 1;
update `eventstmp` set `EventCode`=lpad(`EventCode`,3,'0');
update `eventstmp` set `Import`=0 where exists(select 1 from `events` join `vwactiveevent` on '$MainEventID'=`events`.`MainEventID` where `events`.`Eve
ntCode`=`eventstmp`.`EventCode`);
eof;
Я пробовал это на двух разных базах данных, которые должны быть одинаковыми. Похоже, что описание таблицы eventstmp в каждой базе данных одинаково. Режим SQL каждой базы данных также одинаков. Я не уверен, что мне не хватает.
Я пытался изменить 'LINES TERMINATED BY' from \n to \r\n.
Я также пытался убежать от \, так что это будет: LINES TERMINATED BY '\\n'
Не уверен, что еще попробовать