基本的にcsvファイルからデータを読み取り、MySQLデータベースに挿入するアプリケーションがあります。
最初はこれですべてうまくいっていました(私のSQL知識は混乱していますが、私は試しています):
LOAD DATA INFILE 'filename.csv' INTO TABLE tablename
FIELDS TERMINATED BY ';' LINES TERMINATED BY '\r\n' IGNORE 1 LINES
しかし最近、データベースに挿入されるファイルの列を検証する必要があったため、次のようなことを試しました。
LOAD DATA INFILE 'filename.csv' INTO TABLE tablename FIELDS TERMINATED
BY ';' LINES TERMINATED BY '\r\n' IGNORE 1 LINES (@col1,@col2,@col3,@ignore,@ignore)
SET col1= @col1, col2= @col2, col3= @col3
「IGNORE 1 LINES」の部分を外すと、コマンドは正常に機能しますが、これが他のすべてを台無しにしている理由がわかりません。構文の間違いだと思いますが、考えられることはすべて試しましたが、まだ何も機能しません。誰も手がかりを持っていますか?
編集:「IGNORE 1 LINES」をそのままにしておくと、「SQL 構文にエラーがあります。マニュアルの yadda yadda yadda を確認して、1 行目の 'IGNORE 1 LINES' の近くで使用してください。」
テスト用に、単純なファイルを使用しています。最初の 5 行は次のとおりです。
col1;col2;col3;col4;col5 テスト;テスト;テスト;テスト;テスト テスト 2;テスト 2;テスト 2;テスト 2;テスト 2 テスト3;テスト3;テスト3;テスト3;テスト3 テスト4;テスト4;テスト4;テスト4;テスト4