mysql LOAD DATA INFILE更新

Ben*_*don 4 mysql

我目前正在使用mySQL LOAD DATA INFILE将csv文件插入到我的数据库中.此csv文件每天下载到服务器,以使产品数据保持最新.

我想知道的是如何使用新的csv更新表并保留现有数据并没有区别?

这是我目前的陈述:

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
Run Code Online (Sandbox Code Playgroud)

这样可以正常工作,但它用一个全新的集替换了ID列,并且还将我想要忽略的列恢复为默认状态.例如,我有一个名为'Published'的列,其值为0或1.如果我使用REPLACE,则将该列设置为0.

我如何使用REPLACE但忽略一些列?

Eug*_*eck 5

我如何使用REPLACE但忽略某些列的答案你不能:REPLACE八方通取代了完整的行,而不是该行的单字段值.

这个问题的答案我仍然可以实现我的目标,虽然是:我的建议是LOAD DATA LOCAL INFILE到另一个表中,然后使用存储过程或查询INSERTUPDATE(与REPLACE)你的主表.如果您向我们提供更多信息(表格结构,哪个列与已加载数据与现有数据相匹配),我们可能会为您提供进一步的帮助.