产品id绑定改为code绑定
This commit is contained in:
@@ -0,0 +1,23 @@
|
||||
-- =====================================================================
|
||||
-- 客户绑定产品:存储口径由「产品ID逗号串」改为「产品代码逗号串」
|
||||
-- 背景:后续产品数据从旧数据库迁移导入,新旧库产品ID不一致,
|
||||
-- 产品代码(product_code)在两库间稳定,故客户绑定关系改用代码。
|
||||
-- 日期:2026-09-22
|
||||
-- =====================================================================
|
||||
|
||||
-- 1. 列改名(保留原数据,CHANGE 仅改列名/注释)
|
||||
ALTER TABLE bms_customer
|
||||
CHANGE COLUMN product_ids product_codes varchar(1000) DEFAULT NULL
|
||||
COMMENT '绑定产品代码(多个产品代码用逗号分隔,对接旧库产品编码)';
|
||||
|
||||
-- 2. 旧值(产品ID逗号串)按 bms_product 映射为产品代码逗号串
|
||||
-- FIND_IN_SET 逐个匹配逗号串中的ID,GROUP_CONCAT 重新拼为代码串;
|
||||
-- 匹配不到产品的ID会被置为NULL(脏数据,可在客户编辑页重新绑定)
|
||||
UPDATE bms_customer c
|
||||
SET c.product_codes = (
|
||||
SELECT GROUP_CONCAT(p.product_code)
|
||||
FROM bms_product p
|
||||
WHERE FIND_IN_SET(p.product_id, c.product_codes)
|
||||
)
|
||||
WHERE c.product_codes IS NOT NULL
|
||||
AND c.product_codes <> '';
|
||||
Reference in New Issue
Block a user