132 lines
4.1 KiB
SQL
132 lines
4.1 KiB
SQL
-- ================================================================
|
|
-- 贫困生认定申请表 teacher_name 字段修复脚本
|
|
-- 文件: database_fix_teacher_name.sql
|
|
-- 功能: 添加缺失的 teacher_name 字段,并确保允许NULL
|
|
-- ================================================================
|
|
|
|
USE hzdyjs_xg;
|
|
|
|
-- 1. 检查 teacher_name 字段是否存在
|
|
SELECT '开始检查 teacher_name 字段...' AS message;
|
|
|
|
SELECT
|
|
COLUMN_NAME,
|
|
IS_NULLABLE,
|
|
COLUMN_DEFAULT,
|
|
DATA_TYPE
|
|
FROM INFORMATION_SCHEMA.COLUMNS
|
|
WHERE TABLE_SCHEMA = 'hzdyjs_xg'
|
|
AND TABLE_NAME = 'jcbt_poverty_application'
|
|
AND COLUMN_NAME = 'teacher_name';
|
|
|
|
-- 2. 添加 teacher_name 字段(如果不存在)
|
|
SET @sql = '';
|
|
SELECT COUNT(*) INTO @count
|
|
FROM INFORMATION_SCHEMA.COLUMNS
|
|
WHERE TABLE_SCHEMA = 'hzdyjs_xg'
|
|
AND TABLE_NAME = 'jcbt_poverty_application'
|
|
AND COLUMN_NAME = 'teacher_name';
|
|
|
|
SELECT IF(@count = 0,
|
|
'ALTER TABLE jcbt_poverty_application ADD COLUMN teacher_name varchar(100) DEFAULT NULL COMMENT ''班主任教师姓名'' AFTER teacher_id;',
|
|
'SELECT ''teacher_name 字段已存在,检查是否需要修改属性'' AS result;'
|
|
) INTO @sql;
|
|
|
|
PREPARE stmt FROM @sql;
|
|
EXECUTE stmt;
|
|
DEALLOCATE PREPARE stmt;
|
|
|
|
-- 3. 修改 teacher_name 字段为允许 NULL(如果字段存在且不允许NULL)
|
|
SET @sql = '';
|
|
SELECT COUNT(*) INTO @count
|
|
FROM INFORMATION_SCHEMA.COLUMNS
|
|
WHERE TABLE_SCHEMA = 'hzdyjs_xg'
|
|
AND TABLE_NAME = 'jcbt_poverty_application'
|
|
AND COLUMN_NAME = 'teacher_name'
|
|
AND IS_NULLABLE = 'NO';
|
|
|
|
SELECT IF(@count > 0,
|
|
'ALTER TABLE jcbt_poverty_application MODIFY COLUMN teacher_name varchar(100) DEFAULT NULL COMMENT ''班主任教师姓名'';',
|
|
'SELECT ''teacher_name 字段已允许NULL'' AS result;'
|
|
) INTO @sql;
|
|
|
|
PREPARE stmt FROM @sql;
|
|
EXECUTE stmt;
|
|
DEALLOCATE PREPARE stmt;
|
|
|
|
SELECT '✅ teacher_name 字段修复完成' AS message;
|
|
|
|
-- 4. 添加 teacher_id 字段(如果不存在)
|
|
SET @sql = '';
|
|
SELECT COUNT(*) INTO @count
|
|
FROM INFORMATION_SCHEMA.COLUMNS
|
|
WHERE TABLE_SCHEMA = 'hzdyjs_xg'
|
|
AND TABLE_NAME = 'jcbt_poverty_application'
|
|
AND COLUMN_NAME = 'teacher_id';
|
|
|
|
SELECT IF(@count = 0,
|
|
'ALTER TABLE jcbt_poverty_application ADD COLUMN teacher_id bigint(20) DEFAULT NULL COMMENT ''班主任教师ID'' AFTER class_name;',
|
|
'SELECT ''teacher_id 字段已存在'' AS result;'
|
|
) INTO @sql;
|
|
|
|
PREPARE stmt FROM @sql;
|
|
EXECUTE stmt;
|
|
DEALLOCATE PREPARE stmt;
|
|
|
|
-- 5. 确保 teacher_id 字段允许 NULL
|
|
SELECT '检查 teacher_id 字段...' AS message;
|
|
|
|
SET @sql = '';
|
|
SELECT COUNT(*) INTO @count
|
|
FROM INFORMATION_SCHEMA.COLUMNS
|
|
WHERE TABLE_SCHEMA = 'hzdyjs_xg'
|
|
AND TABLE_NAME = 'jcbt_poverty_application'
|
|
AND COLUMN_NAME = 'teacher_id'
|
|
AND IS_NULLABLE = 'NO';
|
|
|
|
SELECT IF(@count > 0,
|
|
'ALTER TABLE jcbt_poverty_application MODIFY COLUMN teacher_id bigint(20) DEFAULT NULL COMMENT ''班主任教师ID'';',
|
|
'SELECT ''teacher_id 字段已允许NULL或不存在'' AS result;'
|
|
) INTO @sql;
|
|
|
|
PREPARE stmt FROM @sql;
|
|
EXECUTE stmt;
|
|
DEALLOCATE PREPARE stmt;
|
|
|
|
SELECT '✅ teacher_id 字段修复完成' AS message;
|
|
|
|
-- 6. 验证修复结果
|
|
SELECT '=== 修复结果验证 ===' AS message;
|
|
|
|
SELECT
|
|
COLUMN_NAME AS '字段名',
|
|
DATA_TYPE AS '数据类型',
|
|
IS_NULLABLE AS '允许NULL',
|
|
COLUMN_DEFAULT AS '默认值',
|
|
COLUMN_COMMENT AS '注释'
|
|
FROM INFORMATION_SCHEMA.COLUMNS
|
|
WHERE TABLE_SCHEMA = 'hzdyjs_xg'
|
|
AND TABLE_NAME = 'jcbt_poverty_application'
|
|
AND COLUMN_NAME IN ('teacher_id', 'teacher_name')
|
|
ORDER BY ORDINAL_POSITION;
|
|
|
|
-- 7. 显示完整的字段结构确认
|
|
SELECT '=== 相关字段结构确认 ===' AS message;
|
|
|
|
SELECT
|
|
COLUMN_NAME AS '字段名',
|
|
DATA_TYPE AS '数据类型',
|
|
IS_NULLABLE AS '允许NULL',
|
|
COLUMN_DEFAULT AS '默认值',
|
|
COLUMN_COMMENT AS '注释'
|
|
FROM INFORMATION_SCHEMA.COLUMNS
|
|
WHERE TABLE_SCHEMA = 'hzdyjs_xg'
|
|
AND TABLE_NAME = 'jcbt_poverty_application'
|
|
AND COLUMN_NAME IN (
|
|
'class_id', 'class_name', 'teacher_id', 'teacher_name', 'recognition_group'
|
|
)
|
|
ORDER BY ORDINAL_POSITION;
|
|
|
|
SELECT '🎉 teacher_name 和 teacher_id 字段修复完成!' AS message;
|
|
SELECT '📝 请重启后端服务以生效!' AS note;
|