database_fix_jcbt_poverty_application_complete.sql 3.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798
  1. -- ================================================================
  2. -- 贫困生认定申请表完整修复脚本
  3. -- 文件: database_fix_jcbt_poverty_application_complete.sql
  4. -- 功能: 修复 teacher_id 字段默认值问题,添加 family_economy_summary 字段
  5. -- ================================================================
  6. USE hzdyjs_xg;
  7. -- 1. 检查并修复 teacher_id 字段
  8. SELECT '开始检查 teacher_id 字段...' AS message;
  9. -- 检查字段是否存在以及是否允许NULL
  10. SELECT
  11. COLUMN_NAME,
  12. IS_NULLABLE,
  13. COLUMN_DEFAULT,
  14. DATA_TYPE
  15. FROM INFORMATION_SCHEMA.COLUMNS
  16. WHERE TABLE_SCHEMA = 'hzdyjs_xg'
  17. AND TABLE_NAME = 'jcbt_poverty_application'
  18. AND COLUMN_NAME = 'teacher_id';
  19. -- 修改 teacher_id 字段为允许NULL(如果字段存在且不允许NULL)
  20. SET @sql = '';
  21. SELECT COUNT(*) INTO @count
  22. FROM INFORMATION_SCHEMA.COLUMNS
  23. WHERE TABLE_SCHEMA = 'hzdyjs_xg'
  24. AND TABLE_NAME = 'jcbt_poverty_application'
  25. AND COLUMN_NAME = 'teacher_id'
  26. AND IS_NULLABLE = 'NO';
  27. SELECT IF(@count > 0,
  28. CONCAT('ALTER TABLE jcbt_poverty_application MODIFY COLUMN teacher_id bigint(20) NULL COMMENT ''班主任教师ID'';'),
  29. 'SELECT ''teacher_id 字段已允许NULL或不存在'' AS result;'
  30. ) INTO @sql;
  31. PREPARE stmt FROM @sql;
  32. EXECUTE stmt;
  33. DEALLOCATE PREPARE stmt;
  34. SELECT '✅ teacher_id 字段修复完成' AS message;
  35. -- 2. 检查并添加 family_economy_summary 字段
  36. SELECT '开始检查 family_economy_summary 字段...' AS message;
  37. SET @sql = '';
  38. SELECT COUNT(*) INTO @count
  39. FROM INFORMATION_SCHEMA.COLUMNS
  40. WHERE TABLE_SCHEMA = 'hzdyjs_xg'
  41. AND TABLE_NAME = 'jcbt_poverty_application'
  42. AND COLUMN_NAME = 'family_economy_summary';
  43. SELECT IF(@count = 0,
  44. 'ALTER TABLE jcbt_poverty_application ADD COLUMN family_economy_summary text COMMENT ''家庭经济情况摘要'' AFTER assistance_type_names;',
  45. 'SELECT ''family_economy_summary 字段已存在'' AS result;'
  46. ) INTO @sql;
  47. PREPARE stmt FROM @sql;
  48. EXECUTE stmt;
  49. DEALLOCATE PREPARE stmt;
  50. SELECT '✅ family_economy_summary 字段检查完成' AS message;
  51. -- 3. 验证修复结果
  52. SELECT '=== 修复结果验证 ===' AS message;
  53. -- 显示相关字段信息
  54. SELECT
  55. COLUMN_NAME AS '字段名',
  56. DATA_TYPE AS '数据类型',
  57. IS_NULLABLE AS '允许NULL',
  58. COLUMN_DEFAULT AS '默认值',
  59. COLUMN_COMMENT AS '注释'
  60. FROM INFORMATION_SCHEMA.COLUMNS
  61. WHERE TABLE_SCHEMA = 'hzdyjs_xg'
  62. AND TABLE_NAME = 'jcbt_poverty_application'
  63. AND COLUMN_NAME IN ('teacher_id', 'family_economy_summary')
  64. ORDER BY ORDINAL_POSITION;
  65. -- 4. 显示完整表结构(关键字段)
  66. SELECT '=== 表结构确认 ===' AS message;
  67. SELECT
  68. COLUMN_NAME AS '字段名',
  69. DATA_TYPE AS '数据类型',
  70. IS_NULLABLE AS '允许NULL',
  71. COLUMN_COMMENT AS '注释'
  72. FROM INFORMATION_SCHEMA.COLUMNS
  73. WHERE TABLE_SCHEMA = 'hzdyjs_xg'
  74. AND TABLE_NAME = 'jcbt_poverty_application'
  75. AND COLUMN_NAME IN (
  76. 'id', 'student_id', 'class_id', 'teacher_id',
  77. 'family_economy_summary', 'status', 'create_by', 'create_time'
  78. )
  79. ORDER BY ORDINAL_POSITION;
  80. SELECT '🎉 所有修复操作完成!' AS message;
  81. SELECT '📝 请重启后端服务以生效!' AS note;