I am currently using mySQL LOAD DATA INFILE to insert a csv file into my database. This CSV file is uploaded daily to the server to update product data.
I want to know how I can update a table with the new csv and save existing data where it does not differ?
Here is my current statement:
LOAD DATA LOCAL INFILE '$file' REPLACE INTO TABLE products FIELDS TERMINATED BY ',' ENCLOSED BY '\"' ESCAPED BY '\\\' IGNORE 1 LINES (aw_product_id,merchant_id,merchant_image_url,aw_deep_link,description,in_stock,merchant_name,brand_name,display_price,product_name,rrp_price,merchant_category
This works fine, but replaces the identifier column with a completely new set, and also returns the columns that I want to ignore back to the default state. For example, I have a Published column with a value of 0 or 1. If I use REPLACE, it returns that column to 0.
How can I use REPLACE but ignore some columns?
source share