加载数据文件语法 - 第 1 行 CSV 中的无效字段计数

Posted

技术标签:

【中文标题】加载数据文件语法 - 第 1 行 CSV 中的无效字段计数【英文标题】:Load Data Infile Syntax - Invalid field count in CSV on line 1 【发布时间】:2014-05-29 21:03:48 【问题描述】:

为了便于使用,我使用 phpmyadmin,并且正在使用 Load Data Infile Syntax,它会给出以下错误, - 第 1 行 CSV 中的无效字段计数。我知道有一个无效字段计数是故意的。

基本上表格有 8 列,文件有 7。我可以进入文件并通过在第 8 列中输入数据手动更改为 8,但这太耗时了,实际上我必须重新开始到我完成的时候,所以我必须排除它。

八列将是一个数字,每个文件的每一行都完全相同,因此每个文件都是唯一的。

例如,第一个文件有 1000 行,每行包含前 7 列中的数据,然后第 8 列用于标识此文件数据所引用的内容。因此对于 sql 表上的 1000 行,前 7 列是数据,而最后一列将是 1000 个 1,然后下一个文件的 1000 行将有第 8 列表示 1000 个 2,依此类推。 (请注意,出于显而易见的原因,我实际上打算输入 100001,而不是 1 或 000001)。

无论如何,我也无法删除该列并在加载文件后重新添加,原因我不会解释,但我知道该方法对这种情况无用。

我想要的是一种方法,当我加载一个填充前 7 列的文件时,对于第 8 列,在 csv 中的每一行的第 8 列的每一行中放置一个指定的 int .就像自动增量一样,除了每个新行都增加,而是保持不变。然后对于第二个文件,我需要做的就是更改指定的 int。

注意:解决方案不能是更改 csv 文件,因为这很耗时,而且实际上违反直觉。

我希望有人知道是否有办法做到这一点,可能是通过使用混合了加载文件和插入的 sql 代码,以便正确处理而不会出错。

【问题讨论】:

太长了,没看,抱歉。只需发布数据文件的示例和您的 load data infile 语句...... 如果我这样做,你会给我的答案我已经知道是行不通的,因此我花时间写出我知道人们可能会建议但行不通的方法。另外,之前有人问过这个问题,答案对我不起作用。我试图通过这种方式节省时间。 现在阅读一半的问题,答案很简单,将第 8 列加载到变量中。以前有人建议过吗?像我说的那样发布所有技术信息,以及您尝试过的内容或建议的内容。像我这样的人在这里回答了很多问题,出于经验,我再次对你说,一堵文字墙很少有助于更好地理解问题。只有极少数,尤其是那些可能知道答案的人愿意阅读大量文本。看,我每天在这里阅读大约 50 多个问题。在某些时候,您不想阅读与问题无关的任何内容。 谢谢,非常感谢。可以看看***.com/questions/23086782/… 【参考方案1】:

解决方案是简单地将第 8 列加载到变量中,如下所示:

SET @dummy_variable = 0; /* <-not sure if you need this line...*/
LOAD DATA INFILE 'file.txt'
INTO TABLE t1
(column1, column2, ..., column7, @dummy_variable);

【讨论】:

以上是关于加载数据文件语法 - 第 1 行 CSV 中的无效字段计数的主要内容,如果未能解决你的问题,请参考以下文章

csv导入错误的Mysql排序规则/类型第1362行的CSV输入中的列计数无效

第 1 行错误的 CSV 输入中的列数无效(已检查其他问题)

将 Csv 文件导入到 postgres Cloud SQL 实例无效输入语法错误

第 1 行的 CSV 输入中的列数无效错误

删除 CSV(Excel) 中的所有行,除了第 n 行

是啥导致 weka 中的 csv 加载错误?