54 lines
2.1 KiB
PL/PgSQL
54 lines
2.1 KiB
PL/PgSQL
-- ==============================================================================
|
|
-- RailwaySystem Clean Demo 资产: reset_demo_data.sql
|
|
-- 适用数据库: KingbaseES V009R003C018 (schema: public)
|
|
-- 执行目标: 一键清空并重置所有 Demo 演示数据,将系统还原为黄金演示就绪状态
|
|
-- 安全防护: 仅允许在 training_demo_clean 库执行,杜绝误触任何生产或共享测试库
|
|
-- ==============================================================================
|
|
|
|
DO $$
|
|
DECLARE
|
|
v_db TEXT;
|
|
BEGIN
|
|
SELECT current_database() INTO v_db;
|
|
IF v_db NOT LIKE '%demo%' THEN
|
|
RAISE EXCEPTION '>>> [RESET-FATAL] 当前数据库为 %,非 Demo 专属库,安全拒绝重置!', v_db;
|
|
END IF;
|
|
RAISE NOTICE '>>> [RESET-START] 正在重置 % 的演示数据...', v_db;
|
|
END $$;
|
|
|
|
BEGIN;
|
|
|
|
-- 1. 逆序清理业务数据
|
|
DELETE FROM public.train_external_operation;
|
|
DELETE FROM public.train_external_resource_mapping;
|
|
DELETE FROM public.train_student_portrait;
|
|
DELETE FROM public.train_study_duration;
|
|
DELETE FROM public.train_student_score;
|
|
DELETE FROM public.train_score_item;
|
|
DELETE FROM public.train_student_checkin;
|
|
DELETE FROM public.train_lesson;
|
|
DELETE FROM public.train_dorm_auth;
|
|
DELETE FROM public.train_accommodation;
|
|
DELETE FROM public.train_class_report;
|
|
DELETE FROM public.train_enrollment;
|
|
DELETE FROM public.train_plan_course;
|
|
DELETE FROM public.train_class_plan;
|
|
DELETE FROM public.train_course_resource;
|
|
DELETE FROM public.train_resource;
|
|
DELETE FROM public.train_electronic_board;
|
|
DELETE FROM public.train_dormitory_info;
|
|
DELETE FROM public.train_training_site;
|
|
DELETE FROM public.train_classroom_info;
|
|
DELETE FROM public.train_course;
|
|
DELETE FROM public.train_student;
|
|
DELETE FROM public.train_teacher WHERE t_id <> 'T001'; -- 保留基线教师 T001
|
|
|
|
-- 2. 清理 Demo 用户关联
|
|
DELETE FROM public.sys_user_role WHERE user_id IN (10, 11, 12, 21, 22);
|
|
DELETE FROM public.sys_user WHERE user_id IN (10, 11, 12, 21, 22);
|
|
|
|
COMMIT;
|
|
|
|
-- 提示执行载入脚本
|
|
\echo '>>> [RESET-CLEANED] 已清空演示业务表。请重新依序执行 001 到 004 脚本完成黄金数据注入。'
|