LOAD DATA INFILE で項目を手動マッピングする
LOAD DATA INFILE で手動マッピングする
LOAD DATA INFILE で DBサーバローカルのファイル「@@LOAD_FILE@@」(sed -e "s?@@LOAD_FILE@@?${LOAD_FILE}?"
とかで置換します)からロードする。
読み込むデータファイルの項目に変数名をつけて、DB の項目と手動でマッピングすることもできる。
実行コマンド
mysql -u ${MYSQL_USER} -p${MYSQL_PASS} -D ${MYSQL_DB} -h ${MYSQL_HOST} -e"${LOAD_SQL}"
SET autocommit=0;
BEGIN;
LOAD DATA INFILE "@@LOAD_FILE@@"
IGNORE
INTO TABLE UserMaster
FIELDS
TERMINATED BY ','
ENCLOSED BY '"'
ESCAPED BY '\\'
LINES
STARTING BY ''
TERMINATED BY '\n'
(
@user_id
,@user_name
,@user_kana
,@zip_code
,@address1
,@address2
,@telephone
)
SET
user_id=@user_cd
,user_name=@user_name
,zip_code=@zip_code
,address=concat(@address1,' ',@address2)
,telephone=@telephone
;
SHOW WARNINGS ;
COMMIT;