2015年4月20日月曜日

mysql csvで特定columnのimport(更新)

「mysql csv importカラム指定」とかで検索すると
LOAD DATA INFILEを使って列指定出来そうだったんですがcsvにない部分はnullになってしまう。

Update用のテーブルを用意してIDをキーにしてsetするのが良さそうです。

http://stackoverflow.com/questions/10253605/import-csv-to-update-only-one-column-in-table
CREATE TEMPORARY TABLE your_temp_table LIKE your_table;

LOAD DATA INFILE '/tmp/your_file.csv'
INTO TABLE your_temp_table
FIELDS TERMINATED BY ','
(id, product, sku, department, quantity); 

UPDATE your_table
INNER JOIN your_temp_table on your_temp_table.id = your_table.id
SET your_table.quantity = your_temp_table.quantity;

DROP TEMPORARY TABLE your_temp_table;