4

これが私のコードです。

TRUNCATE TABLE dsw_data.inventory_sss2;
SET AUTOCOMMIT=0; 
LOAD DATA INFILE 'c:/inetpub/wwwroot/Data/inventory_sss.csv' INTO TABLE dsw_data.inventory_sss2 FIELDS TERMINATED BY  ',' OPTIONALLY ENCLOSED BY '"' LINES TERMINATED BY '\r'; 
COMMIT;

結果のエラーは次のとおりです

Error Code: 1366. Incorrect integer value: 'CUST NO' for column 'sno' at row 1"

CSVの最初の行をテーブルヘッダーにし、他の行をデータにします。

また、どの行を数値にするかを指定するにはどうすればよいですか(これが必要な場合でも、わかりません)。

私はこことグーグルを検索しましたが、私が望むようにヘッダーを設定するためのコードサンプルを見ていません。

4

2 に答える 2

4

IGNORE 1 LINES最初の質問に答えるには、次の構文を使用する必要があります。

TRUNCATE TABLE dsw_data.inventory_sss2;
SET AUTOCOMMIT=0; 
LOAD DATA INFILE 'c:/inetpub/wwwroot/Data/inventory_sss.csv' 
INTO TABLE dsw_data.inventory_sss2 
FIELDS TERMINATED BY  ',' 
OPTIONALLY ENCLOSED BY '"' 
LINES TERMINATED BY '\r'; 
IGNORE 1 LINES
COMMIT;

列に明示的に名前を付け、自動インクリメントを使用するように主キーをnullに設定するように更新しました。

TRUNCATE TABLE dsw_data.inventory_sss2;
SET AUTOCOMMIT=0; 
LOAD DATA INFILE 'c:/inetpub/wwwroot/Data/inventory_sss.csv' 
INTO TABLE dsw_data.inventory_sss2 
FIELDS TERMINATED BY  ',' 
OPTIONALLY ENCLOSED BY '"' 
LINES TERMINATED BY '\r'; 
IGNORE 1 LINES
(your_first_column, your_second_column,...)
SET sno = NULL
COMMIT;
于 2012-05-29T16:52:26.337 に答える
0

追加

IGNORE 1 LINES

そのようなあなたのLOAD DATA質問に:

LOAD DATA INFILE 'c:/inetpub/wwwroot/Data/inventory_sss.csv' INTO TABLE dsw_data.inventory_sss2 FIELDS TERMINATED BY  ',' OPTIONALLY ENCLOSED BY '"' LINES TERMINATED BY '\r' IGNORE 1 LINES;

どのフィールドが数値であるかを指定する必要はありません。ロード先のテーブルに基づいて指定されます。

于 2012-05-29T16:52:11.880 に答える