Files
SharedClassManager/sql/upgrades/v1.6.sql
2026-05-28 20:48:29 +08:00

64 lines
2.3 KiB
SQL
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
-- ===========================================
-- 班级操行分管理系统 - v1.5 → v1.6 升级脚本
-- 字符集: utf8mb4
--
-- 变更内容:
-- 1. subjects 表添加 subject_code 列(科目代码)
-- 2. subjects 表添加 sort_order 列(排序序号)
-- 3. 更新已有科目的 subject_code
--
-- 兼容性: 使用存储过程实现幂等phpMyAdmin 可直接执行
-- ===========================================
-- 升级步骤 1: subjects 添加 subject_code 列
DROP PROCEDURE IF EXISTS `upgrade_step`;
DELIMITER $$
CREATE PROCEDURE `upgrade_step`()
BEGIN
IF NOT EXISTS (
SELECT * FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_SCHEMA = DATABASE()
AND TABLE_NAME = 'subjects'
AND COLUMN_NAME = 'subject_code'
) THEN
ALTER TABLE `subjects`
ADD COLUMN `subject_code` VARCHAR(20) DEFAULT NULL COMMENT '科目代码'
AFTER `subject_name`;
END IF;
END$$
DELIMITER ;
CALL `upgrade_step`();
DROP PROCEDURE IF EXISTS `upgrade_step`;
-- 升级步骤 2: subjects 添加 sort_order 列
DROP PROCEDURE IF EXISTS `upgrade_step`;
DELIMITER $$
CREATE PROCEDURE `upgrade_step`()
BEGIN
IF NOT EXISTS (
SELECT * FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_SCHEMA = DATABASE()
AND TABLE_NAME = 'subjects'
AND COLUMN_NAME = 'sort_order'
) THEN
ALTER TABLE `subjects`
ADD COLUMN `sort_order` INT DEFAULT 0 COMMENT '排序序号'
AFTER `is_active`;
END IF;
END$$
DELIMITER ;
CALL `upgrade_step`();
DROP PROCEDURE IF EXISTS `upgrade_step`;
-- 升级步骤 3: 更新已有科目的 subject_code
UPDATE `subjects` SET `subject_code` = 'CHI' WHERE `subject_name` = '语文' AND (`subject_code` IS NULL OR `subject_code` = '');
UPDATE `subjects` SET `subject_code` = 'MATH' WHERE `subject_name` = '数学' AND (`subject_code` IS NULL OR `subject_code` = '');
UPDATE `subjects` SET `subject_code` = 'ENG' WHERE `subject_name` = '英语' AND (`subject_code` IS NULL OR `subject_code` = '');
-- 升级步骤 4: 设置默认排序
UPDATE `subjects` SET `sort_order` = 1 WHERE `subject_name` = '语文' AND `sort_order` = 0;
UPDATE `subjects` SET `sort_order` = 2 WHERE `subject_name` = '数学' AND `sort_order` = 0;
UPDATE `subjects` SET `sort_order` = 3 WHERE `subject_name` = '英语' AND `sort_order` = 0;