fix_order_delivery_collations.sql 3.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  1. -- 修复订单交付列表相关表的字符集校对问题
  2. -- 将所有涉及 JOIN 的字符串字段统一为 utf8mb4_general_ci
  3. USE aidopdev;
  4. -- 1. crm_seorder 表
  5. ALTER TABLE crm_seorder
  6. MODIFY COLUMN bill_no VARCHAR(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL,
  7. MODIFY COLUMN custom_no VARCHAR(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL;
  8. -- 2. crm_seorderentry 表
  9. ALTER TABLE crm_seorderentry
  10. MODIFY COLUMN item_number VARCHAR(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL;
  11. -- 3. mes_moentry 表
  12. ALTER TABLE mes_moentry
  13. MODIFY COLUMN moentry_mono VARCHAR(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL;
  14. -- 4. mes_morder 表
  15. ALTER TABLE mes_morder
  16. MODIFY COLUMN morder_no VARCHAR(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL,
  17. MODIFY COLUMN product_code VARCHAR(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL;
  18. -- 5. ASNBOLShipperDetail 表
  19. ALTER TABLE ASNBOLShipperDetail
  20. MODIFY COLUMN OrdNbr VARCHAR(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL,
  21. MODIFY COLUMN ContainerItem VARCHAR(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL;
  22. -- 6. NbrMaster 表(如果存在)
  23. SET @sql_nbrmaster = (SELECT IF(
  24. COUNT(*) > 0,
  25. 'ALTER TABLE NbrMaster MODIFY COLUMN WorkOrd VARCHAR(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL',
  26. 'SELECT "NbrMaster table or WorkOrd column not found" AS info'
  27. ) FROM INFORMATION_SCHEMA.COLUMNS
  28. WHERE TABLE_SCHEMA = 'aidopdev'
  29. AND TABLE_NAME = 'NbrMaster'
  30. AND COLUMN_NAME = 'WorkOrd');
  31. PREPARE stmt FROM @sql_nbrmaster;
  32. EXECUTE stmt;
  33. DEALLOCATE PREPARE stmt;
  34. -- 7. PeriodSequenceDet 表
  35. ALTER TABLE PeriodSequenceDet
  36. MODIFY COLUMN WorkOrds VARCHAR(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL;
  37. -- 8. YearDemandManagement 表(如果存在)
  38. SET @sql_yeardemand = (SELECT IF(
  39. COUNT(*) > 0,
  40. 'ALTER TABLE YearDemandManagement MODIFY COLUMN SAPItemNumber VARCHAR(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL',
  41. 'SELECT "YearDemandManagement table or SAPItemNumber column not found" AS info'
  42. ) FROM INFORMATION_SCHEMA.COLUMNS
  43. WHERE TABLE_SCHEMA = 'aidopdev'
  44. AND TABLE_NAME = 'YearDemandManagement'
  45. AND COLUMN_NAME = 'SAPItemNumber');
  46. PREPARE stmt FROM @sql_yeardemand;
  47. EXECUTE stmt;
  48. DEALLOCATE PREPARE stmt;
  49. -- 9. srm_pr_main 表(如果存在)
  50. SET @sql_srmpr = (SELECT IF(
  51. COUNT(*) > 0,
  52. 'ALTER TABLE srm_pr_main MODIFY COLUMN pr_mono VARCHAR(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL',
  53. 'SELECT "srm_pr_main table or pr_mono column not found" AS info'
  54. ) FROM INFORMATION_SCHEMA.COLUMNS
  55. WHERE TABLE_SCHEMA = 'aidopdev'
  56. AND TABLE_NAME = 'srm_pr_main'
  57. AND COLUMN_NAME = 'pr_mono');
  58. PREPARE stmt FROM @sql_srmpr;
  59. EXECUTE stmt;
  60. DEALLOCATE PREPARE stmt;
  61. -- 10. NbrDetail 表(如果存在)
  62. SET @sql_nbrdetail = (SELECT IF(
  63. COUNT(*) > 0,
  64. 'ALTER TABLE NbrDetail MODIFY COLUMN WorkOrd VARCHAR(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL',
  65. 'SELECT "NbrDetail table or WorkOrd column not found" AS info'
  66. ) FROM INFORMATION_SCHEMA.COLUMNS
  67. WHERE TABLE_SCHEMA = 'aidopdev'
  68. AND TABLE_NAME = 'NbrDetail'
  69. AND COLUMN_NAME = 'WorkOrd');
  70. PREPARE stmt FROM @sql_nbrdetail;
  71. EXECUTE stmt;
  72. DEALLOCATE PREPARE stmt;
  73. SELECT 'Order delivery collations have been fixed successfully' AS result;