低空智控平台 后端go
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.
 
 

28 lines
1.0 KiB

-- 通信卡以 sim_card.iccid 为权威数据;机巢不再保存冗余 ICCID。
-- 执行前请备份数据库。本迁移会先将已登记机巢中的旧 ICCID 回填到通信卡表,随后删除 dock.iccid。
-- 不给 dock_id 加唯一约束:通信卡与机巢仅保留可选关联,不限制一对一。
SET @next_sim_card_id := (SELECT COALESCE(MAX(id), 0) FROM sim_card);
SET @row_number := 0;
INSERT INTO sim_card (
id, user_id, dock_id, carrier, phone, iccid, plan_gb, used_gb,
status, carrier_status, created_at, updated_at
)
SELECT
@next_sim_card_id := @next_sim_card_id + 1,
source.user_id, source.dock_id, '', '', source.iccid, 0, 0,
'active', 'normal', NOW(), NOW()
FROM (
SELECT d.user_id, MIN(d.dock_id) AS dock_id, d.iccid
FROM dock d
LEFT JOIN sim_card s ON s.iccid = d.iccid
WHERE d.user_id > 0
AND d.iccid IS NOT NULL
AND TRIM(d.iccid) <> ''
AND s.id IS NULL
GROUP BY d.user_id, d.iccid
ORDER BY d.user_id, d.iccid
) AS source;
ALTER TABLE dock DROP COLUMN iccid;