From 5d139783c9338abff643add3bfe4755d9491a7c9 Mon Sep 17 00:00:00 2001 From: Zhou Weidong <502333560@qq.com> Date: Tue, 27 Oct 2026 21:07:10 +0800 Subject: [PATCH] =?UTF-8?q?fix(media):=20=E7=BC=A9=E7=95=A5=E5=9B=BE?= =?UTF-8?q?=E5=94=AF=E4=B8=80=E7=B4=A2=E5=BC=95=E6=94=B9=E4=B8=BA=E9=83=A8?= =?UTF-8?q?=E5=88=86=E7=B4=A2=E5=BC=95=EF=BC=8C=E9=81=BF=E5=85=8D=E8=BD=AF?= =?UTF-8?q?=E5=88=A0=E8=A1=8C=E5=8D=A0=E7=94=A8=20episode=5Fid=20=E5=AF=BC?= =?UTF-8?q?=E8=87=B4=E7=99=BB=E8=AE=B0=E5=86=B2=E7=AA=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- sql/migrate-k114-thumbnail-partial-index.sql | 7 +++++++ sql/schema-phase1.sql | 2 +- 2 files changed, 8 insertions(+), 1 deletion(-) create mode 100644 sql/migrate-k114-thumbnail-partial-index.sql diff --git a/sql/migrate-k114-thumbnail-partial-index.sql b/sql/migrate-k114-thumbnail-partial-index.sql new file mode 100644 index 0000000..c9faccc --- /dev/null +++ b/sql/migrate-k114-thumbnail-partial-index.sql @@ -0,0 +1,7 @@ +-- 缩略图时间轴唯一约束改为部分索引: +-- 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; diff --git a/sql/schema-phase1.sql b/sql/schema-phase1.sql index c41f4fd..caac683 100644 --- a/sql/schema-phase1.sql +++ b/sql/schema-phase1.sql @@ -806,7 +806,7 @@ CREATE TABLE IF NOT EXISTS media_thumbnail ( deleted SMALLINT NOT NULL DEFAULT 0 ); CREATE UNIQUE INDEX IF NOT EXISTS uk_media_thumbnail_episode - ON media_thumbnail (episode_id); + ON media_thumbnail (episode_id) WHERE deleted = 0; CREATE INDEX IF NOT EXISTS idx_media_thumbnail_drama ON media_thumbnail (drama_id); COMMENT ON TABLE media_thumbnail IS '单集缩略图雪碧图与 VTT 时间轴';