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

31 lines
1.4 KiB
Markdown
Raw Normal View History

# 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_COLLATION``utf8mb4_general_ci`
- 脚本中不再出现 `utf8mb4_unicode_ci`