MySQL LOAD DATA INFILE限制我的导入?

时间:2014-08-05 07:25:31

标签: mysql load-data-infile

我尝试将数据从CSV导入MySQL。为此,我运行mysql并使用以下命令登录:

mysql -u USER -p --local-infile=1 DATABASE

并导入数据:

LOAD DATA LOCAL INFILE '/home/USER/FILENAME.csv' 
INTO TABLE TABLENAME 
FIELDS TERMINATED BY ';' 
ENCLOSED BY '"' 
LINES TERMINATED BY '\n';

首先我认为一切都很好,因为数据已加载并且看起来很好,但后来我遇到了一些问题,发现我的longtext列中的字符串限制为32756个字符。所以我确定我忘记了一些事情,但在得知之前无法找到答案:(

1 个答案:

答案 0 :(得分:0)

来自documentation

  

如果未启用严格的SQL模式,并为BLOB或分配值   TEXT列超出列的最大长度,值为   截断以适应并生成警告。截断   非空格字符,您可以导致错误发生(而不是   警告)并使用严格的SQL模式禁止插入值。

     

LONGBLOB,LONGTEXT L + 4字节,其中L <1。 2 ^ 32

我的猜测是您正在使用多字节编码,因此遇到长度问题。在这种情况下,您还没有将strict SQL mode设置为错误输出。希望有所帮助,并且如果你还有其他问题一如既往,请留下评论。