08-property-maintenance-table-rename.sql 6.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166
  1. -- ==========================================
  2. -- 物业报修管理模块表名重命名脚本
  3. -- 版本:V1.0.0
  4. -- 功能:将现有pm_开头的表名重命名为hq_pm_开头
  5. -- 作者:Cursor AI 辅助
  6. -- 时间:2025-01-23
  7. -- 目的:符合项目表名规范(后勤管理模块使用hq_前缀)
  8. -- ==========================================
  9. -- 设置字符集
  10. SET NAMES utf8mb4;
  11. -- 检查表是否存在并进行重命名
  12. -- 注意:在重命名之前请确保没有其他进程在使用这些表
  13. -- 1. 重命名报修工单表
  14. -- 先检查表是否存在
  15. SELECT 'Checking table existence...' AS step;
  16. -- 重命名主要业务表
  17. -- 1. pm_repair_order -> hq_pm_repair_order
  18. SET @sql = IF(
  19. (SELECT COUNT(*) FROM INFORMATION_SCHEMA.TABLES
  20. WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'pm_repair_order') > 0,
  21. 'RENAME TABLE pm_repair_order TO hq_pm_repair_order',
  22. 'SELECT "Table pm_repair_order does not exist" AS info'
  23. );
  24. PREPARE stmt FROM @sql;
  25. EXECUTE stmt;
  26. DEALLOCATE PREPARE stmt;
  27. -- 2. pm_repair_attachment -> hq_pm_repair_attachment
  28. SET @sql = IF(
  29. (SELECT COUNT(*) FROM INFORMATION_SCHEMA.TABLES
  30. WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'pm_repair_attachment') > 0,
  31. 'RENAME TABLE pm_repair_attachment TO hq_pm_repair_attachment',
  32. 'SELECT "Table pm_repair_attachment does not exist" AS info'
  33. );
  34. PREPARE stmt FROM @sql;
  35. EXECUTE stmt;
  36. DEALLOCATE PREPARE stmt;
  37. -- 3. pm_repair_progress -> hq_pm_repair_progress
  38. SET @sql = IF(
  39. (SELECT COUNT(*) FROM INFORMATION_SCHEMA.TABLES
  40. WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'pm_repair_progress') > 0,
  41. 'RENAME TABLE pm_repair_progress TO hq_pm_repair_progress',
  42. 'SELECT "Table pm_repair_progress does not exist" AS info'
  43. );
  44. PREPARE stmt FROM @sql;
  45. EXECUTE stmt;
  46. DEALLOCATE PREPARE stmt;
  47. -- 4. pm_service_evaluation -> hq_pm_service_evaluation
  48. SET @sql = IF(
  49. (SELECT COUNT(*) FROM INFORMATION_SCHEMA.TABLES
  50. WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'pm_service_evaluation') > 0,
  51. 'RENAME TABLE pm_service_evaluation TO hq_pm_service_evaluation',
  52. 'SELECT "Table pm_service_evaluation does not exist" AS info'
  53. );
  54. PREPARE stmt FROM @sql;
  55. EXECUTE stmt;
  56. DEALLOCATE PREPARE stmt;
  57. -- 5. pm_repair_category -> hq_pm_repair_category
  58. SET @sql = IF(
  59. (SELECT COUNT(*) FROM INFORMATION_SCHEMA.TABLES
  60. WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'pm_repair_category') > 0,
  61. 'RENAME TABLE pm_repair_category TO hq_pm_repair_category',
  62. 'SELECT "Table pm_repair_category does not exist" AS info'
  63. );
  64. PREPARE stmt FROM @sql;
  65. EXECUTE stmt;
  66. DEALLOCATE PREPARE stmt;
  67. -- 6. pm_system_config -> hq_pm_system_config
  68. SET @sql = IF(
  69. (SELECT COUNT(*) FROM INFORMATION_SCHEMA.TABLES
  70. WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'pm_system_config') > 0,
  71. 'RENAME TABLE pm_system_config TO hq_pm_system_config',
  72. 'SELECT "Table pm_system_config does not exist" AS info'
  73. );
  74. PREPARE stmt FROM @sql;
  75. EXECUTE stmt;
  76. DEALLOCATE PREPARE stmt;
  77. -- 验证重命名结果
  78. SELECT 'Verifying table rename results...' AS step;
  79. -- 检查新表名是否存在
  80. SELECT
  81. CASE
  82. WHEN EXISTS (SELECT 1 FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'hq_pm_repair_order')
  83. THEN 'EXISTS'
  84. ELSE 'NOT EXISTS'
  85. END AS hq_pm_repair_order_status,
  86. CASE
  87. WHEN EXISTS (SELECT 1 FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'hq_pm_repair_attachment')
  88. THEN 'EXISTS'
  89. ELSE 'NOT EXISTS'
  90. END AS hq_pm_repair_attachment_status,
  91. CASE
  92. WHEN EXISTS (SELECT 1 FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'hq_pm_repair_progress')
  93. THEN 'EXISTS'
  94. ELSE 'NOT EXISTS'
  95. END AS hq_pm_repair_progress_status,
  96. CASE
  97. WHEN EXISTS (SELECT 1 FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'hq_pm_service_evaluation')
  98. THEN 'EXISTS'
  99. ELSE 'NOT EXISTS'
  100. END AS hq_pm_service_evaluation_status,
  101. CASE
  102. WHEN EXISTS (SELECT 1 FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'hq_pm_repair_category')
  103. THEN 'EXISTS'
  104. ELSE 'NOT EXISTS'
  105. END AS hq_pm_repair_category_status,
  106. CASE
  107. WHEN EXISTS (SELECT 1 FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'hq_pm_system_config')
  108. THEN 'EXISTS'
  109. ELSE 'NOT EXISTS'
  110. END AS hq_pm_system_config_status;
  111. -- 检查旧表名是否还存在(应该不存在)
  112. SELECT
  113. CASE
  114. WHEN EXISTS (SELECT 1 FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'pm_repair_order')
  115. THEN 'STILL EXISTS (ERROR)'
  116. ELSE 'REMOVED (OK)'
  117. END AS old_pm_repair_order_status,
  118. CASE
  119. WHEN EXISTS (SELECT 1 FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'pm_repair_attachment')
  120. THEN 'STILL EXISTS (ERROR)'
  121. ELSE 'REMOVED (OK)'
  122. END AS old_pm_repair_attachment_status,
  123. CASE
  124. WHEN EXISTS (SELECT 1 FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'pm_repair_progress')
  125. THEN 'STILL EXISTS (ERROR)'
  126. ELSE 'REMOVED (OK)'
  127. END AS old_pm_repair_progress_status,
  128. CASE
  129. WHEN EXISTS (SELECT 1 FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'pm_service_evaluation')
  130. THEN 'STILL EXISTS (ERROR)'
  131. ELSE 'REMOVED (OK)'
  132. END AS old_pm_service_evaluation_status,
  133. CASE
  134. WHEN EXISTS (SELECT 1 FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'pm_repair_category')
  135. THEN 'STILL EXISTS (ERROR)'
  136. ELSE 'REMOVED (OK)'
  137. END AS old_pm_repair_category_status,
  138. CASE
  139. WHEN EXISTS (SELECT 1 FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'pm_system_config')
  140. THEN 'STILL EXISTS (ERROR)'
  141. ELSE 'REMOVED (OK)'
  142. END AS old_pm_system_config_status;
  143. SELECT 'Table rename operation completed!' AS result;