You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
38 lines
2.1 KiB
38 lines
2.1 KiB
-- 方案商归属从「品牌商」下移到「产品」。
|
|
-- 原因:方案商 = 这套产品用的芯片方案提供方,同一个品牌商的不同产品可能用不同方案商的方案,
|
|
-- 挂在品牌商上会串号——生产设备码的服务ID(CID)取的就是它。
|
|
-- brand.providerid 保留列但停止读写(后端已不再写入),待确认无回滚需求后再删列。
|
|
\set ON_ERROR_STOP on
|
|
BEGIN;
|
|
|
|
-- 1. 产品级方案商归属
|
|
ALTER TABLE product ADD COLUMN IF NOT EXISTS providerid integer DEFAULT 0;
|
|
CREATE INDEX IF NOT EXISTS idx_product_providerid ON product (providerid);
|
|
|
|
-- 2. 历史产品按原品牌商归属回填(品牌商没归属或方案商已不存在的,留 0 由后台补录)
|
|
UPDATE product p
|
|
SET providerid = b.providerid
|
|
FROM brand b
|
|
WHERE b.id = p.brandid
|
|
AND COALESCE(p.providerid, 0) = 0
|
|
AND COALESCE(b.providerid, 0) <> 0
|
|
AND EXISTS (SELECT 1 FROM solution_provider s WHERE s.id = b.providerid);
|
|
|
|
COMMIT;
|
|
|
|
-- 回填后核对:仍未绑定方案商的产品(后台产品管理里逐个补,补完才能正常生产设备码)
|
|
-- SELECT id, devicename, brandid FROM product WHERE COALESCE(providerid,0) = 0 ORDER BY id;
|
|
|
|
-- ── 同批:产品创建时间 + 产品说明 ──────────────────────────────────────────
|
|
-- createtime 只在新增时写一次(历史产品无从还原,留 0,后台显示为 "-");
|
|
-- description 是「这款产品是什么、有什么特性」,与版本更新说明 updatedescription 无关。
|
|
BEGIN;
|
|
ALTER TABLE product ADD COLUMN IF NOT EXISTS createtime bigint DEFAULT 0;
|
|
ALTER TABLE product ADD COLUMN IF NOT EXISTS description text DEFAULT '';
|
|
COMMIT;
|
|
|
|
-- ── 同批:品牌商创建时间 ───────────────────────────────────────────────────
|
|
-- 与产品一致,只在新增时写一次;历史品牌商无从还原,留 0,后台显示为 "-"。
|
|
BEGIN;
|
|
ALTER TABLE brand ADD COLUMN IF NOT EXISTS createtime bigint DEFAULT 0;
|
|
COMMIT;
|
|
|