-- 展位重构迁移:从 6 槽位缩减为 2 槽位 -- 执行时间:2026-05-20 -- 执行人:待填写 -- 风险等级:高(删除数据) -- ========== 备份(建议执行前手动备份)========== -- 备份 booth_slots 表 -- CREATE TABLE booth_slots_backup_20260520 AS SELECT * FROM booth_slots; -- 备份 exhibitions 表 -- CREATE TABLE exhibitions_backup_20260520 AS SELECT * FROM exhibitions; -- ========== 迁移开始 ========== -- 1. 先删除 slot_index > 2 的展览记录(引用完整性) DELETE FROM exhibitions WHERE slot_id IN ( SELECT slot_id FROM booth_slots WHERE slot_index > 2 ); -- 2. 删除 slot_index > 2 的槽位记录 DELETE FROM booth_slots WHERE slot_index > 2; -- 3. 验证清理结果 SELECT user_id, star_id, COUNT(*) as slot_count FROM booth_slots GROUP BY user_id, star_id HAVING COUNT(*) > 2; -- 应该返回空结果,表示每个用户的每个明星展馆最多只有 2 个槽位 -- 4. 验证 exhibitions 没有残留(检查是否有关联到已删除槽位的展览) SELECT COUNT(*) as orphaned_exhibitions FROM exhibitions e WHERE NOT EXISTS ( SELECT 1 FROM booth_slots bs WHERE bs.slot_id = e.slot_id ); -- 应该返回 0 -- ========== 迁移完成 ==========