122 lines
5.7 KiB
SQL
122 lines
5.7 KiB
SQL
-- ==========================================
|
|
-- 学生信息表字段名修复脚本
|
|
-- 版本:V2.1.0
|
|
-- 功能:修复字段名不匹配问题
|
|
-- 作者:Cursor AI 辅助
|
|
-- 时间:2025-01-12
|
|
-- 问题:数据库字段名与实体类字段名(驼峰转下划线)不匹配
|
|
-- ==========================================
|
|
|
|
-- 设置字符集
|
|
SET NAMES utf8mb4;
|
|
SET FOREIGN_KEY_CHECKS = 0;
|
|
|
|
-- ----------------------------
|
|
-- 修复 xg_student_info 表字段名
|
|
-- ----------------------------
|
|
|
|
-- 1. 添加缺失的字段
|
|
ALTER TABLE `xg_student_info`
|
|
ADD COLUMN `current_address` varchar(200) DEFAULT NULL COMMENT '现住址' AFTER `wechat`,
|
|
ADD COLUMN `domicile_place` varchar(100) DEFAULT NULL COMMENT '户籍所在地' AFTER `home_address`,
|
|
ADD COLUMN `special_condition` varchar(200) DEFAULT NULL COMMENT '特殊体质或疾病' AFTER `weight`;
|
|
|
|
-- 2. 重命名字段以匹配实体类
|
|
ALTER TABLE `xg_student_info`
|
|
CHANGE COLUMN `emergency_contact` `emergency_contact_name` varchar(50) DEFAULT NULL COMMENT '紧急联系人姓名',
|
|
CHANGE COLUMN `emergency_relation` `emergency_contact_relation` varchar(20) DEFAULT NULL COMMENT '紧急联系人关系',
|
|
CHANGE COLUMN `emergency_phone` `emergency_contact_phone` varchar(20) DEFAULT NULL COMMENT '紧急联系人电话',
|
|
CHANGE COLUMN `father_job` `father_work_unit` varchar(100) DEFAULT NULL COMMENT '父亲工作单位',
|
|
CHANGE COLUMN `mother_job` `mother_work_unit` varchar(100) DEFAULT NULL COMMENT '母亲工作单位',
|
|
CHANGE COLUMN `is_from_poor_family` `is_poor_student` tinyint(1) DEFAULT 0 COMMENT '是否贫困生:0-否,1-是';
|
|
|
|
-- 3. 删除不需要的重复字段(如果存在)
|
|
-- ALTER TABLE `xg_student_info` DROP COLUMN IF EXISTS `home_zip_code`;
|
|
-- ALTER TABLE `xg_student_info` DROP COLUMN IF EXISTS `family_zip_code`;
|
|
|
|
-- 4. 确保邮政编码字段正确
|
|
ALTER TABLE `xg_student_info`
|
|
CHANGE COLUMN `home_zip_code` `postal_code` varchar(10) DEFAULT NULL COMMENT '邮政编码';
|
|
|
|
-- ----------------------------
|
|
-- 验证修复结果
|
|
-- ----------------------------
|
|
|
|
-- 检查关键字段是否存在
|
|
SELECT '=== 字段修复验证 ===' as 'Result';
|
|
|
|
SELECT
|
|
CASE WHEN COUNT(*) > 0 THEN '✅ current_address 字段存在' ELSE '❌ current_address 字段缺失' END as 'current_address_check'
|
|
FROM information_schema.COLUMNS
|
|
WHERE table_schema = DATABASE() AND table_name = 'xg_student_info' AND column_name = 'current_address';
|
|
|
|
SELECT
|
|
CASE WHEN COUNT(*) > 0 THEN '✅ domicile_place 字段存在' ELSE '❌ domicile_place 字段缺失' END as 'domicile_place_check'
|
|
FROM information_schema.COLUMNS
|
|
WHERE table_schema = DATABASE() AND table_name = 'xg_student_info' AND column_name = 'domicile_place';
|
|
|
|
SELECT
|
|
CASE WHEN COUNT(*) > 0 THEN '✅ emergency_contact_name 字段存在' ELSE '❌ emergency_contact_name 字段缺失' END as 'emergency_contact_name_check'
|
|
FROM information_schema.COLUMNS
|
|
WHERE table_schema = DATABASE() AND table_name = 'xg_student_info' AND column_name = 'emergency_contact_name';
|
|
|
|
SELECT
|
|
CASE WHEN COUNT(*) > 0 THEN '✅ emergency_contact_relation 字段存在' ELSE '❌ emergency_contact_relation 字段缺失' END as 'emergency_contact_relation_check'
|
|
FROM information_schema.COLUMNS
|
|
WHERE table_schema = DATABASE() AND table_name = 'xg_student_info' AND column_name = 'emergency_contact_relation';
|
|
|
|
SELECT
|
|
CASE WHEN COUNT(*) > 0 THEN '✅ emergency_contact_phone 字段存在' ELSE '❌ emergency_contact_phone 字段缺失' END as 'emergency_contact_phone_check'
|
|
FROM information_schema.COLUMNS
|
|
WHERE table_schema = DATABASE() AND table_name = 'xg_student_info' AND column_name = 'emergency_contact_phone';
|
|
|
|
SELECT
|
|
CASE WHEN COUNT(*) > 0 THEN '✅ father_work_unit 字段存在' ELSE '❌ father_work_unit 字段缺失' END as 'father_work_unit_check'
|
|
FROM information_schema.COLUMNS
|
|
WHERE table_schema = DATABASE() AND table_name = 'xg_student_info' AND column_name = 'father_work_unit';
|
|
|
|
SELECT
|
|
CASE WHEN COUNT(*) > 0 THEN '✅ mother_work_unit 字段存在' ELSE '❌ mother_work_unit 字段缺失' END as 'mother_work_unit_check'
|
|
FROM information_schema.COLUMNS
|
|
WHERE table_schema = DATABASE() AND table_name = 'xg_student_info' AND column_name = 'mother_work_unit';
|
|
|
|
SELECT
|
|
CASE WHEN COUNT(*) > 0 THEN '✅ special_condition 字段存在' ELSE '❌ special_condition 字段缺失' END as 'special_condition_check'
|
|
FROM information_schema.COLUMNS
|
|
WHERE table_schema = DATABASE() AND table_name = 'xg_student_info' AND column_name = 'special_condition';
|
|
|
|
SELECT
|
|
CASE WHEN COUNT(*) > 0 THEN '✅ is_poor_student 字段存在' ELSE '❌ is_poor_student 字段缺失' END as 'is_poor_student_check'
|
|
FROM information_schema.COLUMNS
|
|
WHERE table_schema = DATABASE() AND table_name = 'xg_student_info' AND column_name = 'is_poor_student';
|
|
|
|
SELECT
|
|
CASE WHEN COUNT(*) > 0 THEN '✅ postal_code 字段存在' ELSE '❌ postal_code 字段缺失' END as 'postal_code_check'
|
|
FROM information_schema.COLUMNS
|
|
WHERE table_schema = DATABASE() AND table_name = 'xg_student_info' AND column_name = 'postal_code';
|
|
|
|
-- 测试之前报错的SQL查询
|
|
SELECT '=== SQL查询测试 ===' as 'Result';
|
|
|
|
SELECT COUNT(*) as '查询测试结果'
|
|
FROM xg_student_info
|
|
WHERE tenant_id = '000000'
|
|
AND deleted = 0
|
|
LIMIT 1;
|
|
|
|
-- 显示最终表结构
|
|
SELECT '=== 最终表结构 ===' as 'Result';
|
|
DESC xg_student_info;
|
|
|
|
-- 恢复外键检查
|
|
SET FOREIGN_KEY_CHECKS = 1;
|
|
|
|
-- ----------------------------
|
|
-- 脚本执行完成提示
|
|
-- ----------------------------
|
|
SELECT '==============================' as 'Result';
|
|
SELECT '✅ 字段名修复完成!' as 'Result';
|
|
SELECT '✅ 所有字段名已与实体类匹配' as 'Result';
|
|
SELECT '✅ MyBatis-Plus 字段映射已修复' as 'Result';
|
|
SELECT '请重启后端服务并重新测试' as 'Result';
|
|
SELECT '==============================' as 'Result'; |