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

如何通过CSV中的SKU关联products表更新product_details的title和description?

通过SKU更新product_details表的可行性与实现方案

可行性与逻辑合理性

完全可行,逻辑也合理。只要你的products表中SKU是产品的唯一标识(建议给SKU加唯一约束),就能通过SKU关联到对应的products.id,再通过外键关联定位到product_details表的对应记录,进而更新title和description字段。

具体SQL实现步骤

1. 创建临时表存储CSV数据

先建一个临时表来存放CSV里的SKU和待更新的标题、描述:

CREATE TEMPORARY TABLE temp_product_updates (
    sku VARCHAR(255),
    new_title VARCHAR(255),
    new_description TEXT
);

2. 导入CSV数据到临时表

根据你使用的数据库,选择对应的导入方式:

  • MySQL示例:
LOAD DATA INFILE '/path/to/your/update_data.csv'
INTO TABLE temp_product_updates
FIELDS TERMINATED BY ',' 
ENCLOSED BY '"'
LINES TERMINATED BY '\n'
IGNORE 1 ROWS; -- 如果CSV第一行是表头就加这句
  • PostgreSQL示例:
COPY temp_product_updates(sku, new_title, new_description)
FROM '/path/to/your/update_data.csv'
DELIMITER ',' CSV HEADER;

3. 关联更新product_details表

通过三次表关联,用临时表的数据更新目标表:

UPDATE product_details pd
JOIN products p ON pd.product_id = p.id
JOIN temp_product_updates tpu ON p.sku = tpu.sku
SET pd.title = tpu.new_title,
    pd.description = tpu.new_description;

关键注意事项

  • 必须保证products.sku是唯一的,否则一个SKU对应多个产品会导致错误更新,建议给该字段添加UNIQUE约束
  • 更新前先执行查询验证匹配记录,避免误操作:
SELECT pd.product_id, p.sku, pd.title AS old_title, tpu.new_title, pd.description AS old_desc, tpu.new_description
FROM product_details pd
JOIN products p ON pd.product_id = p.id
JOIN temp_product_updates tpu ON p.sku = tpu.sku;
  • 操作前备份product_details和products表,防止数据异常
  • 校验CSV数据,确保所有SKU都在products表中存在,避免无效更新

内容的提问来源于stack exchange,提问作者Marcin Wierzycki

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 23:25:19