-- ============================================= -- 修复 series_info 表的唯一约束问题 -- 日期:2025-12-30 -- 说明:删除旧的 series_instance_uid 唯一约束,添加组合唯一约束 -- ============================================= USE qconline; -- ============================================= -- 第一步:查看当前约束 -- ============================================= SELECT '=== 当前 series_info 表的索引 ===' AS ''; SHOW INDEX FROM series_info WHERE Key_name = 'uk_series_uid'; -- ============================================= -- 第二步:删除旧的唯一约束 -- ============================================= SELECT '=== 删除旧的 uk_series_uid 约束 ===' AS ''; ALTER TABLE series_info DROP INDEX IF EXISTS uk_series_uid; -- ============================================= -- 第三步:添加新的组合唯一约束 -- ============================================= SELECT '=== 添加新的 uk_series_sop 组合唯一约束 ===' AS ''; ALTER TABLE series_info ADD UNIQUE KEY uk_series_sop (series_instance_uid, sop_instance_uid); -- ============================================= -- 第四步:验证修改结果 -- ============================================= SELECT '=== 修改后的索引 ===' AS ''; SHOW INDEX FROM series_info; -- ============================================= -- 说明 -- ============================================= /* 旧约束:series_instance_uid 单独唯一 问题:一个序列只能有一条 series_info 记录 无法存储同一序列的多张片子 新约束:series_instance_uid + sop_instance_uid 组合唯一 优点: 1. 同一个序列(series_instance_uid)可以有多条记录(多张片子) 2. 同一张片子(sop_instance_uid)在同一个序列中不会重复 3. 符合新的数据结构设计:每个 series_info 记录代表一张片子 数据结构变化: 旧:Study -> Series (1条) -> Instances (多条) 新:Study -> Series (多条,按series_instance_uid分组) 查询逻辑: - 按 series_instance_uid 分组获取序列信息 - 每组的所有记录就是该序列的所有片子 */