You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

MySQL使用LOAD DATA语句根据SKU匹配实现插入或更新操作

实现方案

前置要求

首先需要确保my_data表的SKU列存在唯一索引,这是触发重复判断逻辑的前提。如果还没添加,执行以下语句:

ALTER TABLE my_data ADD UNIQUE INDEX uniq_sku(SKU);

如果SKU已经是表的主键,可跳过这一步。

调整后的LOAD DATA语句

在原有导入语句基础上补充字段映射和ON DUPLICATE KEY UPDATE子句即可实现需求,示例如下:

LOAD DATA LOCAL INFILE 'Base.txt' INTO TABLE my_data 
CHARACTER SET latin1 
FIELDS TERMINATED BY '\t' 
ENCLOSED BY '"' 
LINES TERMINATED BY '\r\n' 
IGNORE 1 LINES
-- 此处按你的txt文件实际列顺序,填写对应表字段名,示例为SKU+其他4个字段,可自行修改
(SKU, col1, col2, col3, col4)
ON DUPLICATE KEY UPDATE NEW_FLAG = 1;

逻辑说明

  • 当导入记录的SKU与表中已有SKU重复时,会自动触发更新逻辑,仅将对应行的NEW_FLAG字段设为1,其余原有字段值不会被覆盖
  • 当导入记录的SKU在表中不存在时,会直接将整条记录按字段映射插入表中,完全匹配你的需求

注意事项

  • 如果导入文件的列顺序和表字段顺序不一致,或者列数不匹配,必须明确写清楚上述的字段映射部分,避免数据错位
  • 如果文件中存在不需要入库的列,可使用@dummy变量跳过对应列,例如(SKU, @dummy, col1, col2)就会跳过文件的第二列不导入

内容的提问来源于stack exchange,提问作者david.adam

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 11:27:03