From 487583c2aa5a23c2a6c6814202ff2450dbd833cd Mon Sep 17 00:00:00 2001 From: wangzhibiao Date: Mon, 14 Sep 2026 02:41:55 +0800 Subject: [PATCH] =?UTF-8?q?fix(db):=20=E4=BF=AE=E5=A4=8D010=E9=AA=8C?= =?UTF-8?q?=E6=94=B6=E8=84=9A=E6=9C=AC=E7=9A=84V2=E5=94=AF=E4=B8=80?= =?UTF-8?q?=E7=BA=A6=E6=9D=9F=E8=8C=83=E5=9B=B4=E4=B8=8E=E7=B4=A2=E5=BC=95?= =?UTF-8?q?=E8=A1=A8=E8=BE=BE=E5=BC=8F=E5=85=BC=E5=AE=B9=E6=80=A7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- RuoYi-Vue/sql/train/v2/010_verify.sql | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/RuoYi-Vue/sql/train/v2/010_verify.sql b/RuoYi-Vue/sql/train/v2/010_verify.sql index 282a37f5f..c3194dcf8 100644 --- a/RuoYi-Vue/sql/train/v2/010_verify.sql +++ b/RuoYi-Vue/sql/train/v2/010_verify.sql @@ -152,6 +152,7 @@ BEGIN WHERE tc.constraint_type = 'UNIQUE' AND tc.table_schema = 'public' AND tc.table_name LIKE 'train_%' + AND tc.constraint_name LIKE 'uq_%' GROUP BY tc.table_name, tc.constraint_name ) SELECT 'MISSING_UQ' AS diff_type, e.table_name, e.constraint_name, e.column_list @@ -384,27 +385,30 @@ BEGIN AND tablename = 'train_study_duration' AND indexname = 'uq_idx_study_source_event' AND indexdef LIKE '%UNIQUE INDEX%' - AND indexdef LIKE '%(source_system, source_event_id)%' + AND (indexdef LIKE '%(source_system, source_event_id)%' OR (indexdef LIKE '%source_system%source_event_id%')) AND indexdef LIKE '%source_system IS NOT NULL%' AND indexdef LIKE '%source_event_id IS NOT NULL%'; IF v_cnt <> 1 THEN RAISE EXCEPTION '>>> [Verify-FATAL] 部分唯一索引 uq_idx_study_source_event 定义不合要求'; END IF; - -- 7.2 排课表三大时间检索复合索引 + -- 7.2 排课表三大时间检索复合索引 (兼容 Kingbase 索引生成的 NULLS FIRST 表达式格式) SELECT count(*) INTO v_cnt FROM pg_indexes WHERE schemaname = 'public' AND tablename = 'train_lesson' - AND indexname = 'idx_lesson_teacher_time' AND indexdef LIKE '%(t_id, start_time, end_time)%'; + AND indexname = 'idx_lesson_teacher_time' + AND (indexdef LIKE '%(t_id, start_time, end_time)%' OR indexdef LIKE '%t_id%start_time%end_time%'); IF v_cnt <> 1 THEN RAISE EXCEPTION '>>> [Verify-FATAL] 索引 idx_lesson_teacher_time 复合列定义不合要求'; END IF; SELECT count(*) INTO v_cnt FROM pg_indexes WHERE schemaname = 'public' AND tablename = 'train_lesson' - AND indexname = 'idx_lesson_classroom_time' AND indexdef LIKE '%(class_room_id, start_time, end_time)%'; + AND indexname = 'idx_lesson_classroom_time' + AND (indexdef LIKE '%(class_room_id, start_time, end_time)%' OR indexdef LIKE '%class_room_id%start_time%end_time%'); IF v_cnt <> 1 THEN RAISE EXCEPTION '>>> [Verify-FATAL] 索引 idx_lesson_classroom_time 复合列定义不合要求'; END IF; SELECT count(*) INTO v_cnt FROM pg_indexes WHERE schemaname = 'public' AND tablename = 'train_lesson' - AND indexname = 'idx_lesson_site_time' AND indexdef LIKE '%(site_id, start_time, end_time)%'; + AND indexname = 'idx_lesson_site_time' + AND (indexdef LIKE '%(site_id, start_time, end_time)%' OR indexdef LIKE '%site_id%start_time%end_time%'); IF v_cnt <> 1 THEN RAISE EXCEPTION '>>> [Verify-FATAL] 索引 idx_lesson_site_time 复合列定义不合要求'; END IF; -- ==========================================================================