MariaDB加载数据Infile - 无法读取最后一行

时间:2018-05-05 20:10:13

标签: php mysql mariadb load-data-infile

我的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'

不确定还有什么可以尝试

0 个答案:

没有答案