我使用phpmyadmin易于使用,并且正在使用加载数据Infile语法,它会产生以下错误, - 第1行的CSV中的无效字段计数。我知道有一个无效的字段计数是故意的。
基本上该表有8列,文件有7.我可以进入文件并通过在第8列输入数据手动更改为8但这太耗时了,实际上我必须重新开始当我结束时,我必须排除这一点。
八列将是一个数字,对于每个文件的每一行都是完全相同的,因此每个文件都是唯一的。
例如,第一个文件有1000行,每行包含前七列中的数据,然后第8列用于标识此文件数据所引用的内容。因此,对于sql表中的1000行,前7列是数据,而最后一列只是1000 1' s,然后下一个文件的1000行将有第8列,表示1000 2&# 39; s等等。 (注意我实际上是因为显而易见的原因而进入100001,而不是1或000001)。
无论如何,我无法删除该列并在加载文件后添加回来,原因很充分,我不会解释,但我知道这种方法对这种情况毫无用处。
我想要的是一种方法,当我加载一个填充前7列的文件时,而对于第8列,在第8列的每一行中放置一个指定的int,对于csv中的每一行。像自动增量一样,除了增加每一个新行,只需保持不变。然后对于第二个文件,我需要做的就是更改指定的int。
注意:解决方案无法更改csv文件,因为这非常耗时,而且实际上是反直觉的。
我希望有人知道是否有办法这样做,可能是通过使用加载文件和插入的混合的SQL代码,以便它正确处理而不会出错。
答案 0 :(得分:0)
解决方案是简单地将第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);