Files
loan-pricing/doc/implementation-report-2026-03-28-collation-unification.md

1.4 KiB

loan-pricing collation 统一实施记录

本次改动

  • 将目标数据库 116.62.17.81:3307/loan-pricing 的数据库默认排序规则调整为 utf8mb4_general_ci
  • 将目标数据库全部 33 张表的表级默认排序规则统一为 utf8mb4_general_ci
  • 修改以下建库和建表脚本,统一默认排序规则为 utf8mb4_general_ci
    • sql/loan_pricing_schema_20260328.sql
    • sql/loan_pricing_workflow.sql
    • sql/model_corp.sql
    • sql/model_retail.sql

执行方式

  1. 执行 ALTER DATABASE \loan-pricing` CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci`
  2. 对全部现有表执行 ALTER TABLE ... DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci
  3. 将脚本中的 DEFAULT CHARSET=utf8mb4 统一补齐为 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci
  4. 将脚本中遗留的 utf8mb4_unicode_ci 替换为 utf8mb4_general_ci

说明

  • Quartz 相关表存在外键约束,直接执行 CONVERT TO CHARACTER SET 会触发外键列兼容性错误
  • 因此数据库侧采用“统一数据库默认排序规则 + 统一表级默认排序规则”的方式完成所有表的 collation 统一
  • 业务建表脚本已同步为 utf8mb4_general_ci,后续重建库时不会再回落到其他 collation

验证目标

  • 数据库默认排序规则为 utf8mb4_general_ci
  • 所有表的 TABLE_COLLATIONutf8mb4_general_ci
  • 脚本中不再出现 utf8mb4_unicode_ci