2016-06-01 21 views
0
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を指定する必要がないということです。だから..すべてのヘルプは大mysqlロードデータinfileで「不正な整数値」が返される

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;;;;;; 
+1

あなたの質問はこのようなものです。 http://stackoverflow.com/questions/6017032/how-to-load-data-infile-in-mysql-with-first-col-being-auto-increment –

+0

ありがとうございました。 – mpj

答えて

2

あなたは、idカラム以外のすべてのカラム名を指定する必要があります。私はあなたのテーブルが(ID、COL1、COL2、COL3)の列を持っていると仮定

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

1

次の2つのステップ負荷使用することができます。テーブルにデータをロードします)

1。

2)例

あなたのテーブルにデータを取得するにはINSERT INTO ... SELECT ... FROMを使用します。読み込み、その後、最後の列などのIDを使ってテーブルを作成します

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

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

代替オプションLOAD DATA INFILEを使用すると動作します

関連する問題