MysqlのLoad Data INFILEで
型違い・桁違いのエラーとなる行をスキップしたいと考えております。
LOAD DATA INFILE内での処理は可能なのでしょうか。
一つの逃げ道としては、何でも入る中間テーブル用意して、
そこから本テーブルへのInsertをしたほうがよいのかと考えてます。
前提として
1.キー項目なのでデータ自体を編集して入れることはできない。
2.型を変えるのはNG
3.元データ(CSV)は直せない。
4.エラーにより、該当レコードをスキップしたことがわからなくてもよい。
Mysqlのバージョンは、5.7です。
SQL
1CREATE TABLE AAA 2( 3id SMALLINT UNSIGNED NOT NULL, 4name VARCHAR(40), 5PRIMARY KEY (id) 6) 7; 8 9SET character_set_database=cp932; 10LOAD DATA INFILE 'C:\Work\AAA.CSV' REPLACE INTO TABLE AAA 11 FIELDS TERMINATED BY ',' ENCLOSED BY '"' LINES TERMINATED BY '\r\n' IGNORE 1 LINES 12(@id,@name) 13SET 14 id = @id, 15 name = @name;
AAA.CSVの中身
1"id","name" 2"1","AAA" 3"S123","BBB" 4"3","CCC"
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/03/24 11:07
2020/03/26 02:04
2020/03/26 02:06