sqlの"--"コメントにも記載していますが、自分としてのポイントは、
- LOCAL INFILEの"LOCAL"で、"Access denied for user..."のようなエラーになりづらい
- "\N"としなくても、NULLIF()でnull値をimportできます
かな?
LOAD DATA LOCAL INFILE '/path/to/import_file.csv' [REPLACE | IGNORE] INTO TABLE import_tbl character set 'utf8' -- 文字コード FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' -- フィールドを囲む文字 ESCAPED BY '\' -- エスケープ文字 LINES TERMINATED BY '\n' IGNORE 0 LINES -- 先頭?行を無視 (field_1,field_2,...) -- import対象のcolumn SET -- 必要に応じ値を変換 update_time = NULLIF(update_time, '0000-00-00 00:00:00'), --日時の場合は注意 field_1 = IF(field_1='A', field_1, null), ;
まぁ、dev.mysql.com/doc に記載の通りなんですけどね。 https://dev.mysql.com/doc/refman/5.6/ja/load-data.html