2017-01-19 7 views
0

次のコマンドを使用して.CSVファイルからMySQLデータベースにデータをロードしようとしています。データベースに情報をロードしようとしたとき、次のエラーは、MySQLによって返されるしかしMySQL - データをファイルにロード日付フィールドのエラーを返す

LOAD DATA LOCAL INFILE "FILEPATH/EQUIPMENT.CSV" 
INTO TABLE EQUIPMENT 
FIELDS TERMINATED BY ',' ENCLOSED BY '"' 
LINES TERMINATED BY '\R\N' 
IGNORE 1 LINES; 

:このエラーは、どんな意味がありません

Error Code: 1292. Incorrect date value: '0000-00-00' for column 'END_OF_LIFE' at row 1 

。値 '0000-00-00'がデータセットの行1に指定されていないためです。以下のデータセットの例を参照してください。

+---------------+-------------+ 
| EQUIPMENT_ID | END_OF_LIFE | 
+---------------+-------------+ 
| B1010-V003 | 1800-01-01 | 
| B1010-V001 | 1800-01-01 | 
| B1010-V005 | 1800-01-01 | 
+---------------+-------------+ 

システムでこのエラーが返される理由は何ですか? (私はより合理的な値に日付を変更しようとしましたが、これはどちらも動作しません)。私は実際に間違っていたものを考え出し

/usr/bin/mysql --local-infile=1 -u$DB_user -p$DB_pw --database=$DB_database < $working_dir/load_ic2_loc_batch.sh 2>> $logfile 

答えて

0

はこれを試してみてください。スクリプトの行頭が間違って大文字で指定されていたためでした(入力CSVファイルのMS DOS行の終わりが大文字と小文字を区別していると思います)。以下の修正されたスクリプトを見てください。

LOAD DATA LOCAL INFILE "FILEPATH/EQUIPMENT.CSV" 
INTO TABLE EQUIPMENT 
FIELDS TERMINATED BY ',' ENCLOSED BY '"' 
LINES TERMINATED BY '\r\n' 
IGNORE 1 LINES; 
+0

ありがとうございました。コマンドプロンプトでこのコマンドを実行するのですか?あなたはその使い方について少し詳しく説明できますか? ! – Josh

+0

は申し訳ありませんが私は、上記のいずれかがバッチファイルで実行すると、次の起動することを意図され、間違ったファイルを送った。#/ binに/ SHを LOAD DATA LOCAL INFILE BY TERMINATED '/ .CSV' TABLE INTO FIELDS '、' ENCLOSED BY '' '' LINES TERMINATED BY '\ r \ n' IGNORE 0 LINES; – Paul

+0

心配する必要はありません。 – Josh

関連する問題