Files
ccdi/sql/migration/employee_org_no_to_dept_id.sql

69 lines
1.8 KiB
MySQL
Raw Normal View History

-- ================================
-- 纪检初核系统 - 员工表字段迁移脚本
-- 功能: 将 org_no 字段改为 dept_id
-- 创建日期: 2026-01-28
-- ================================
-- 备份说明:执行前请先备份数据库
USE `discipline-prelim-check`;
-- ----------------------------
-- 步骤1: 删除旧索引(如果存在)
-- ----------------------------
-- 使用存储过程检查并删除索引
DROP PROCEDURE IF EXISTS drop_index_if_exists;
DELIMITER //
CREATE PROCEDURE drop_index_if_exists()
BEGIN
DECLARE index_count INT;
SELECT COUNT(*) INTO index_count
FROM INFORMATION_SCHEMA.STATISTICS
WHERE TABLE_SCHEMA = 'discipline-prelim-check'
AND TABLE_NAME = 'dpc_employee'
AND INDEX_NAME = 'idx_org_no';
IF index_count > 0 THEN
ALTER TABLE `dpc_employee` DROP INDEX `idx_org_no`;
END IF;
END //
DELIMITER ;
CALL drop_index_if_exists();
DROP PROCEDURE IF EXISTS drop_index_if_exists;
-- ----------------------------
-- 步骤2: 修改字段名和类型
-- ----------------------------
ALTER TABLE `dpc_employee`
CHANGE COLUMN `org_no` `dept_id` BIGINT DEFAULT NULL COMMENT '所属部门ID';
-- ----------------------------
-- 步骤3: 创建新索引
-- ----------------------------
CREATE INDEX `idx_dept_id` ON `dpc_employee` (`dept_id`);
-- ----------------------------
-- 验证脚本
-- ----------------------------
-- 检查字段是否修改成功
SELECT
COLUMN_NAME,
DATA_TYPE,
COLUMN_TYPE,
IS_NULLABLE,
COLUMN_COMMENT
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_SCHEMA = 'discipline-prelim-check'
AND TABLE_NAME = 'dpc_employee'
AND COLUMN_NAME = 'dept_id';
-- 检查索引是否创建成功
SELECT
INDEX_NAME,
COLUMN_NAME
FROM INFORMATION_SCHEMA.STATISTICS
WHERE TABLE_SCHEMA = 'discipline-prelim-check'
AND TABLE_NAME = 'dpc_employee'
AND INDEX_NAME = 'idx_dept_id';