-- 缩略图时间轴唯一约束改为部分索引: -- media_thumbnail.deleted 为 @TableLogic 逻辑删除,软删行仍占用 episode_id 会导致 -- ThumbnailRecordService.upsert 的 delete+insert 触发 uk_media_thumbnail_episode 冲突。 -- 唯一性只约束未删除行(deleted = 0)。 DROP INDEX IF EXISTS uk_media_thumbnail_episode; CREATE UNIQUE INDEX IF NOT EXISTS uk_media_thumbnail_episode ON media_thumbnail (episode_id) WHERE deleted = 0;