61 lines
3.2 KiB
SQL
61 lines
3.2 KiB
SQL
-- ================================================
|
||
-- 专业合并:批次表 + 行级快照表
|
||
-- 用途:合并前备份将被修改的行,便于错误恢复
|
||
-- 日期: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='专业合并行级快照表';
|