fix_all_collations.sql 2.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. -- 统一修复所有 collation 冲突问题
  2. -- 将 utf8mb4_0900_ai_ci 统一改为 utf8mb4_general_ci
  3. USE aidopdev;
  4. -- ═══════════════════════════════════════════════════════════
  5. -- 1. 修复 ResourceOccupancyTime 表(产线加班)
  6. -- ═══════════════════════════════════════════════════════════
  7. SELECT '修复 ResourceOccupancyTime 表' AS 步骤;
  8. ALTER TABLE ResourceOccupancyTime
  9. MODIFY Domain VARCHAR(8) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci,
  10. MODIFY Site VARCHAR(8) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci,
  11. MODIFY Resource VARCHAR(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci,
  12. MODIFY ResourceType VARCHAR(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci,
  13. MODIFY Descr VARCHAR(60) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci,
  14. MODIFY Ufld1 VARCHAR(8) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci,
  15. MODIFY Ufld2 VARCHAR(8) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci,
  16. MODIFY CreateUser VARCHAR(24) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci,
  17. MODIFY UpdateUser VARCHAR(24) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
  18. -- ═══════════════════════════════════════════════════════════
  19. -- 2. 验证修改结果
  20. -- ═══════════════════════════════════════════════════════════
  21. SELECT '验证修改结果' AS 步骤;
  22. -- 检查 ResourceOccupancyTime
  23. SELECT TABLE_NAME, COLUMN_NAME, COLUMN_TYPE, COLLATION_NAME
  24. FROM INFORMATION_SCHEMA.COLUMNS
  25. WHERE TABLE_SCHEMA = 'aidopdev'
  26. AND TABLE_NAME = 'ResourceOccupancyTime'
  27. AND COLLATION_NAME IS NOT NULL
  28. ORDER BY COLUMN_NAME;
  29. -- ═══════════════════════════════════════════════════════════
  30. -- 3. 测试产线加班列表的 JOIN(ResourceOccupancyTime + LineMaster)
  31. -- ═══════════════════════════════════════════════════════════
  32. SELECT '测试产线加班 JOIN' AS 步骤;
  33. SELECT COUNT(*) AS test_overtime_join
  34. FROM ResourceOccupancyTime r
  35. LEFT JOIN LineMaster lm
  36. ON r.Domain = lm.Domain AND r.Resource = lm.Line
  37. WHERE r.IsActive = 1
  38. LIMIT 1;
  39. SELECT '全部修复完成!' AS 状态;