行不包含所有列的数据

时间:2014-11-30 23:22:15

标签: mysql

我试图导入包含以下内容的文本文件:

http://pastebin.com/qhzrq3M7

使用命令

进入我的数据库

加载数据本地infile'C:/Users/Gary/Desktop/XML/jobs.txt'INTO表作业字段以'\ t'终止;

但我一直得到错误第1-13行不包含所有列的数据

5 个答案:

答案 0 :(得分:1)

我遇到了同样的问题。我如何解决这个问题:

  1. 尝试使用Notepad ++(文本编辑器)
  2. 打开CSV文件
  3. 我在文件末尾看到一个空白行,我已将其删除。
  4. - 华友世纪,它解决了我的问题。

    以下网址也可以帮助您解决问题。 http://www.thoughtspot.com/blog/5-magic-fixes-most-common-csv-file-problems

答案 1 :(得分:0)

听起来像加载数据本地infile期望看到每列的值。

您可以手动编辑文件(删除这些行 - 可以是空行),也可以创建临时表,将行插入单个列,然后编写mysql命令以拆分选项卡上的行并将值插入目标表

答案 2 :(得分:0)

确保每行的最后一个字段以\ t结尾。或者,使用LINES TERMINATED BY

LOAD DATA LOCAL INFILE 'C:/Users/Gary/Desktop/XML/jobs.txt' INTO TABLE jobs COLUMNS TERMINATED BY '\t' OPTIONALLY ENCLOSED BY '"' LINES TERMINATED BY '\r';

\r是一个回车符,类似于换行符(即\n

答案 3 :(得分:0)

如果您使用的是Windows,请确保按照mariadb docs的说明使用LINTER TERMINATED BY \ r \ n

答案 4 :(得分:0)

确保任何字段的末尾都没有“ \”。在被视为文本的csv中,它看起来像“ \”,这显然是不可以的,因为该逗号将被忽略,因此您将没有足够的列。

(这主要适用于您没有在每个字段周围都加引号的字段包围的情况。)