-- ================================================ -- 专业合并:批次表 + 行级快照表 -- 用途:合并前备份将被修改的行,便于错误恢复 -- 日期:2026-08-18 -- ================================================ -- ---------------------------- -- 专业合并批次表 -- ---------------------------- DROP TABLE IF EXISTS `xg_major_merge_batch`; CREATE TABLE `xg_major_merge_batch` ( `id` bigint(20) NOT NULL COMMENT '主键ID(merge_batch_id)', `tenant_id` varchar(20) NOT NULL DEFAULT '000000' COMMENT '租户编号', `create_dept` bigint(20) DEFAULT NULL COMMENT '创建部门', `create_by` bigint(20) DEFAULT NULL COMMENT '创建者', `create_time` datetime DEFAULT NULL COMMENT '创建时间', `update_by` bigint(20) DEFAULT NULL COMMENT '更新者', `update_time` datetime DEFAULT NULL COMMENT '更新时间', `deleted` tinyint(1) DEFAULT 0 COMMENT '删除标志(0代表存在 1代表删除)', `college_id` bigint(20) DEFAULT NULL COMMENT '所属学院ID', `target_major_id` bigint(20) NOT NULL COMMENT '目标专业ID', `target_major_name` varchar(100) DEFAULT NULL COMMENT '目标专业名称', `source_major_ids` varchar(2000) NOT NULL COMMENT '源专业ID列表(JSON数组)', `source_major_names` varchar(2000) DEFAULT NULL COMMENT '源专业名称列表(JSON数组)', `status` varchar(20) NOT NULL DEFAULT 'RUNNING' COMMENT '状态:RUNNING/SUCCESS/FAILED/ROLLED_BACK', `summary_json` mediumtext COMMENT '各表更新行数摘要(JSON)', `snapshot_row_count` int(11) DEFAULT 0 COMMENT '快照行数', `remark` varchar(500) DEFAULT NULL COMMENT '备注', PRIMARY KEY (`id`) USING BTREE, KEY `idx_tenant_id` (`tenant_id`), KEY `idx_deleted` (`deleted`), KEY `idx_target_major_id` (`target_major_id`), KEY `idx_status` (`status`), KEY `idx_create_time` (`create_time`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='专业合并批次表'; -- ---------------------------- -- 专业合并行级快照表 -- ---------------------------- DROP TABLE IF EXISTS `xg_major_merge_row_snapshot`; CREATE TABLE `xg_major_merge_row_snapshot` ( `id` bigint(20) NOT NULL COMMENT '主键ID', `tenant_id` varchar(20) NOT NULL DEFAULT '000000' COMMENT '租户编号', `create_dept` bigint(20) DEFAULT NULL COMMENT '创建部门', `create_by` bigint(20) DEFAULT NULL COMMENT '创建者', `create_time` datetime DEFAULT NULL COMMENT '创建时间', `update_by` bigint(20) DEFAULT NULL COMMENT '更新者', `update_time` datetime DEFAULT NULL COMMENT '更新时间', `deleted` tinyint(1) DEFAULT 0 COMMENT '删除标志(0代表存在 1代表删除)', `merge_batch_id` bigint(20) NOT NULL COMMENT '合并批次ID', `table_name` varchar(128) NOT NULL COMMENT '原表名', `row_pk` varchar(200) NOT NULL COMMENT '原表主键(联合主键用下划线拼接)', `row_json` mediumtext NOT NULL COMMENT '更新前整行JSON', PRIMARY KEY (`id`) USING BTREE, KEY `idx_tenant_id` (`tenant_id`), KEY `idx_deleted` (`deleted`), KEY `idx_merge_batch_id` (`merge_batch_id`), KEY `idx_table_name` (`table_name`), KEY `idx_batch_table` (`merge_batch_id`, `table_name`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='专业合并行级快照表';