# 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`
