fix-college-vs-collage-fields.sql 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100
  1. -- 修复学院字段拼写问题
  2. -- 版本: 1.0.0
  3. -- 创建日期: 2025-07-13
  4. -- 描述: 检查并修复学院字段的拼写问题(college vs collage)
  5. -- 第一步:检查字段情况
  6. SELECT
  7. COUNT(*) as college_name_count,
  8. (SELECT COUNT(*) FROM INFORMATION_SCHEMA.COLUMNS
  9. WHERE TABLE_NAME = 'zsjy_enrollment_info'
  10. AND COLUMN_NAME = 'collage_name'
  11. AND TABLE_SCHEMA = DATABASE()) as collage_name_count,
  12. (SELECT COUNT(*) FROM INFORMATION_SCHEMA.COLUMNS
  13. WHERE TABLE_NAME = 'zsjy_enrollment_info'
  14. AND COLUMN_NAME = 'college_id'
  15. AND TABLE_SCHEMA = DATABASE()) as college_id_count,
  16. (SELECT COUNT(*) FROM INFORMATION_SCHEMA.COLUMNS
  17. WHERE TABLE_NAME = 'zsjy_enrollment_info'
  18. AND COLUMN_NAME = 'collage_id'
  19. AND TABLE_SCHEMA = DATABASE()) as collage_id_count
  20. FROM INFORMATION_SCHEMA.COLUMNS
  21. WHERE TABLE_NAME = 'zsjy_enrollment_info'
  22. AND COLUMN_NAME = 'college_name'
  23. AND TABLE_SCHEMA = DATABASE();
  24. -- 第二步:如果存在collage_name而不存在college_name,则重命名字段
  25. SET @rename_collage_name_sql = (
  26. SELECT IF(
  27. EXISTS(SELECT 1 FROM INFORMATION_SCHEMA.COLUMNS
  28. WHERE TABLE_NAME = 'zsjy_enrollment_info'
  29. AND COLUMN_NAME = 'collage_name'
  30. AND TABLE_SCHEMA = DATABASE())
  31. AND
  32. NOT EXISTS(SELECT 1 FROM INFORMATION_SCHEMA.COLUMNS
  33. WHERE TABLE_NAME = 'zsjy_enrollment_info'
  34. AND COLUMN_NAME = 'college_name'
  35. AND TABLE_SCHEMA = DATABASE()),
  36. 'ALTER TABLE zsjy_enrollment_info CHANGE COLUMN collage_name college_name varchar(100) COMMENT \'学院名称\'',
  37. 'SELECT \'无需修改collage_name字段\' AS message'
  38. )
  39. );
  40. PREPARE stmt FROM @rename_collage_name_sql;
  41. EXECUTE stmt;
  42. DEALLOCATE PREPARE stmt;
  43. -- 第三步:如果存在collage_id而不存在college_id,则重命名字段
  44. SET @rename_collage_id_sql = (
  45. SELECT IF(
  46. EXISTS(SELECT 1 FROM INFORMATION_SCHEMA.COLUMNS
  47. WHERE TABLE_NAME = 'zsjy_enrollment_info'
  48. AND COLUMN_NAME = 'collage_id'
  49. AND TABLE_SCHEMA = DATABASE())
  50. AND
  51. NOT EXISTS(SELECT 1 FROM INFORMATION_SCHEMA.COLUMNS
  52. WHERE TABLE_NAME = 'zsjy_enrollment_info'
  53. AND COLUMN_NAME = 'college_id'
  54. AND TABLE_SCHEMA = DATABASE()),
  55. 'ALTER TABLE zsjy_enrollment_info CHANGE COLUMN collage_id college_id varchar(20) COMMENT \'学院代码\'',
  56. 'SELECT \'无需修改collage_id字段\' AS message'
  57. )
  58. );
  59. PREPARE stmt FROM @rename_collage_id_sql;
  60. EXECUTE stmt;
  61. DEALLOCATE PREPARE stmt;
  62. -- 第四步:如果不存在college_name,则添加该字段
  63. SET @add_college_name_sql = (
  64. SELECT IF(
  65. NOT EXISTS(SELECT 1 FROM INFORMATION_SCHEMA.COLUMNS
  66. WHERE TABLE_NAME = 'zsjy_enrollment_info'
  67. AND COLUMN_NAME = 'college_name'
  68. AND TABLE_SCHEMA = DATABASE()),
  69. 'ALTER TABLE zsjy_enrollment_info ADD COLUMN college_name varchar(100) COMMENT \'学院名称\'',
  70. 'SELECT \'college_name字段已存在\' AS message'
  71. )
  72. );
  73. PREPARE stmt FROM @add_college_name_sql;
  74. EXECUTE stmt;
  75. DEALLOCATE PREPARE stmt;
  76. -- 第五步:如果不存在college_id,则添加该字段
  77. SET @add_college_id_sql = (
  78. SELECT IF(
  79. NOT EXISTS(SELECT 1 FROM INFORMATION_SCHEMA.COLUMNS
  80. WHERE TABLE_NAME = 'zsjy_enrollment_info'
  81. AND COLUMN_NAME = 'college_id'
  82. AND TABLE_SCHEMA = DATABASE()),
  83. 'ALTER TABLE zsjy_enrollment_info ADD COLUMN college_id varchar(20) COMMENT \'学院代码\'',
  84. 'SELECT \'college_id字段已存在\' AS message'
  85. )
  86. );
  87. PREPARE stmt FROM @add_college_id_sql;
  88. EXECUTE stmt;
  89. DEALLOCATE PREPARE stmt;
  90. SELECT '学院字段拼写修复完成!' AS result;