check_workorder_collations.sql 1.4 KB

123456789101112131415161718192021222324252627282930313233
  1. -- 检查工单调度相关表的 collation 状态
  2. -- 用于诊断 WorkOrdMaster、ItemMaster、mes_morder、PeriodSequenceDet、LineMaster 的排序规则
  3. USE aidopdev;
  4. SELECT '工单调度相关表的 collation 检查' AS 检查项;
  5. SELECT
  6. TABLE_NAME AS 表名,
  7. COLUMN_NAME AS 字段名,
  8. COLUMN_TYPE AS 字段类型,
  9. COLLATION_NAME AS 排序规则
  10. FROM INFORMATION_SCHEMA.COLUMNS
  11. WHERE TABLE_SCHEMA = 'aidopdev'
  12. AND TABLE_NAME IN ('WorkOrdMaster', 'ItemMaster', 'mes_morder', 'PeriodSequenceDet', 'LineMaster')
  13. AND COLUMN_NAME IN ('WorkOrd', 'ItemNum', 'Domain', 'morder_no', 'factory_id', 'Line', 'Site', 'Workshop')
  14. AND COLLATION_NAME IS NOT NULL
  15. ORDER BY TABLE_NAME, COLUMN_NAME;
  16. -- 标记出不一致的排序规则
  17. SELECT '⚠️ 排序规则不一致的字段组' AS 警告;
  18. SELECT
  19. COLUMN_NAME AS 字段名,
  20. GROUP_CONCAT(DISTINCT COLLATION_NAME ORDER BY COLLATION_NAME SEPARATOR ' vs ') AS 不同的排序规则,
  21. GROUP_CONCAT(DISTINCT TABLE_NAME ORDER BY TABLE_NAME SEPARATOR ', ') AS 涉及的表
  22. FROM INFORMATION_SCHEMA.COLUMNS
  23. WHERE TABLE_SCHEMA = 'aidopdev'
  24. AND TABLE_NAME IN ('WorkOrdMaster', 'ItemMaster', 'mes_morder', 'PeriodSequenceDet', 'LineMaster')
  25. AND COLUMN_NAME IN ('WorkOrd', 'ItemNum', 'Domain', 'morder_no', 'factory_id', 'Line')
  26. AND COLLATION_NAME IS NOT NULL
  27. GROUP BY COLUMN_NAME
  28. HAVING COUNT(DISTINCT COLLATION_NAME) > 1;