用mysql加载数据infile我得到“不正确的整数值”

时间:2016-06-01 01:49:47

标签: mysql

LOAD DATA INFILE 'thefile.csv' 
INTO TABLE word 
FIELDS TERMINATED BY ';'
IGNORE 1 LINES
SET id = NULL;

我有点迷失在这里做什么,我认为这个查询会起作用,但事实并非如此。我得到关于id的错误,这就是为什么我认为set id = NULL会使它好但不是。我的id行(即AUTO_INCREMENT)的要点是我不需要指定ID。所以..嗯。任何帮助将不胜感激

Incorrect integer value: '' for column 'id' at row 1 

我的CSV文件内容:

id;meaning;japanese;kanji;kana;romaji;visible;featured;image;image_author;imgauthor_link;extra
;pants;パンツ;;パンツ;pantsu;;;;;;

2 个答案:

答案 0 :(得分:2)

您必须指定除id列以外的所有列名称:

LOAD DATA INFILE 'thefile.csv' 
INTO TABLE word 
FIELDS TERMINATED BY ';'
IGNORE 1 LINES
(col1,col2,col3);

我假设你的表有(id,col1,col2,col3)列。

答案 1 :(得分:1)

您可以使用两步加载:

1)将数据加载到表中;

2)使用INSERT INTO ... SELECT ... FROM在表格中获取数据

示例:

CREATE TABLE baseData (
    All your column definitions, but not your id column
);

INSERT INTO (all your columns except the id column) SELECT * FROM baseData;

备选方案:

  

使用id作为最后一列创建表,然后使用LOAD DATA INFILE加载