From d958655c1e54b2bf0c26136ea7139504ef2c9d44 Mon Sep 17 00:00:00 2001 From: lychang Date: Mon, 20 Jul 2026 02:19:54 +0800 Subject: [PATCH] update --- migrations/003_metadata_fix.sql | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/migrations/003_metadata_fix.sql b/migrations/003_metadata_fix.sql index 1c4583a..f0ac1b1 100644 --- a/migrations/003_metadata_fix.sql +++ b/migrations/003_metadata_fix.sql @@ -1,11 +1,16 @@ -- 别名表增加唯一约束,防止同一个人名下同名别名重复 -CREATE UNIQUE INDEX IF NOT EXISTS idx_aliases_unique ON person_aliases(person_id, alias_name); +-- +-- 注意:需要先清理重复数据,再创建索引。 +-- 如果先 CREATE UNIQUE INDEX,已有重复行时会直接报错。 --- 清理可能存在的重复别名(保留 id 最小的那条) +-- 1. 清理可能存在的重复别名(保留 id 最小的那条) DELETE FROM person_aliases WHERE id NOT IN ( SELECT MIN(id) FROM person_aliases GROUP BY person_id, alias_name ); +-- 2. 创建唯一索引(此时已无重复数据,不会失败) +CREATE UNIQUE INDEX IF NOT EXISTS idx_aliases_unique ON person_aliases(person_id, alias_name); + -- 相册关联表上增加唯一索引(已有 PRIMARY KEY,添加显式唯一索引加速) -- 同时增加每张专辑只能有一个 person 的约束 -- 先清理旧的重复关联(同一album_id关联了多个person_id的情况)