当前位置: 首页 > 知识库问答 >
问题:

加载数据文件(来自 csv):数据对于第 N 行处的列“xxx”来说太长

拓拔麒
2023-03-14

我正在将.csv导入Mysql,如下所示:

LOAD DATA INFILE '(...)/contact_acquisition.csv'
INTO TABLE rs_ui_db.contact_acquisition
CHARACTER SET utf8
FIELDS TERMINATED BY ','
ENCLOSED BY '"'
LINES TERMINATED BY '\n'
IGNORE 1 ROWS;  

…引发以下错误:

"对于第63行的“注释”列,数据太长"

我看着第63行。csv,而“评论”的长度为115。

create语句似乎没问题(带有comments char(255)):

CREATE DATABASE IF NOT EXISTS `my_db` /*!40100 DEFAULT CHARACTER SET utf8 */;
USE `my_db`;

DROP TABLE IF EXISTS `contact_acquisition`;
CREATE TABLE `contact_acquisition` (
  `SID` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `pilot` char(255) NOT NULL,
  `contact` char(255) NOT NULL,
  `email` char(255) NOT NULL,
  `tel` char(255) NOT NULL,
  `comments` char(255) NOT NULL,
  PRIMARY KEY (`SID`)
) ENGINE=InnoDB AUTO_INCREMENT=76 DEFAULT CHARSET=utf8; 

在将其标记为副本之前,请注意:

这个StackOverflow解决方案显然不适合:我已经将< code >字符集utf8添加到< code>LOAD DATA sql中。

另一个StackOverflow解决方案对我来说似乎有点牵强,因为我插入的所有数据(创建数据库语句,创建表语句,CSV等)都是从允许完全相同行的另一台服务器中提取的。我已经使用Mysql工作台来提取创建/ csv等。

我正在尝试从一台服务器自动导出到另一台服务器,因此我无法更改目标中的数据类型。

更新:

这是一行(模糊处理,但保留非字母数字字符):

64,“xxxx, ”xxxx, xxxx xxxx“,”xxxx.xxxx@xxxx.xxxx, xxxx.xxxx@xxxx-xxxx.xxxx.xxxx“,xxxx (xxxx) xxxx xxxx xxxx xxxx (xxxx),”xxxx xxxx xxxxxxx xxxxxxx x

MySQL抱怨的部分是:“xxxx-xxxx-xxxx'xxxx-xxxxx-xxxx-xxxx xxxx-xxxxxx-xxxx,xxxx-xxx-xxxx-xxxx-xxxx”。它由包装,包含1个逗号和3个'.正确导入的其他行(来自同一CSV)也有这些字符。长度似乎是与其他行的唯一区别。

csv文件在utf8中。

共有1个答案

商麒
2023-03-14

尝试使用由'\r\n'终止的行

LOAD DATA INFILE '(...)/contact_acquisition.csv'
INTO TABLE rs_ui_db.contact_acquisition
CHARACTER SET utf8
FIELDS TERMINATED BY ','
ENCLOSED BY '"'
LINES TERMINATED BY '\r\n'
IGNORE 1 ROWS;

这对我来说很好

 类似资料:
  • 我有我的班级电影: 和我的控制器方法: 我得到一个错误: Servlet.service()的servlet[springDispatcher]在上下文与路径[/web编程]抛出异常[请求处理失败;嵌套异常org.springframework.dao.DataIntegrityViolationException:无法执行语句;SQL[n/a];嵌套异常是org.hibernate.except

  • 错误代码:1406。数据对于列来说太长了 现在一些值 插入的记录 如果我们 它显示了错误信息 错误代码:1406。数据对于列来说太长了 但我的期望是,我想在表中插入至少前45个字符 如果问题不清楚,请告诉我。 我知道此错误的原因。我正在尝试插入超过数据类型长度的值。 我想要MySQL中的解决方案,因为它可以在MSSQL中使用。所以我希望它也能在MySQL中使用。

  • 我使用hibernate映射一对多来完成我的任务。但是当我运行这个项目时,它遇到了一个问题:“数据截断:对于第1行的列‘tinhTrang’来说,数据太长了”。我不明白为什么我会得到这个。我搜索了一下,但是没有发现像我这样的布尔有任何问题。请帮助我。谢谢大家 } 以下是错误消息: 原因:org.hibernate.exception。DataException:无法在org.hibernate.e

  • 免责声明: 首先我想说的是,我对网络开发还很陌生——也许这个问题是由于缺乏基础知识造成的,因此,如果有任何有用的建议,我将不胜感激。 问题: 我试图在我的web应用程序上加载gltf格式的3D数据,但是数据是动态的- 然而,我想坚持使用反应三纤维德雷,因为它易于与反应一起使用。不幸的是,我无法在示例或其他人的代码中找到解决方案。 可在此处找到可编辑沙盒: https://codesandbox.i

  • 我在持久化LocalDate字段[在列中使用VARCHAR(20)类型]时收到以下错误: 字段定义如下: 我使用的是spring data starter(1.5.9版本)。它在内部使用hibernate 5.0.12。 根据博文https://www.thoughts-on-java.org/hibernate-5-date-and-time/ Hibernate 5,支持Java 8特性(Da

  • 在我的11ty站点(skeleventy-starter)上,我想解析数百篇评论。这些评论被存储在我的数据文件夹中的一个名为reviews的文件夹中,作为单个YAML文件(名称如下:“entry-7128372832.yml”)。每个yaml文件如下所示: 但是,当我尝试在我的.njk文件中遍历review-data时: 我似乎既没有访问数据的权限,也没有在控制台中得到一个错误。我错过了什么?感谢