代码之家  ›  专栏  ›  技术社区  ›  bumblebee

MySQL LOAD DATA INFILE限制我的导入?

  •  1
  • bumblebee  · 技术社区  · 10 年前

    我尝试将数据从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';
    

    首先,我认为一切都很好,因为数据已经加载,到目前为止看起来很好,但后来我遇到了一些问题,发现我的长文本列中的字符串限制为32756个字符。所以我肯定我忘了什么,但在知道之前找不到答案:(

    1 回复  |  直到 10 年前
        1
  •  0
  •   Community CDub    4 年前

    documentation :

    如果未启用严格SQL模式,并且将值分配给BLOB或 TEXT列超过该列的最大长度,值为 被截断以适合,并生成警告。用于截断 非空格字符,则可能导致出现错误(而不是 警告),并通过使用严格的SQL模式禁止插入值。

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

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