AWS Aurora MySQL 5.7.12 重音敏感排序规则

Posted

技术标签:

【中文标题】AWS Aurora MySQL 5.7.12 重音敏感排序规则【英文标题】:AWS Aurora MySQL 5.7.12 accent sensitive collation 【发布时间】:2019-03-07 07:17:18 【问题描述】:

旧版 SQLServer db 列具有排序规则 SQL_Latin1_General_CP1_CI_AS(不区分大小写,区分重音)。

我们需要将此列迁移到已创建并积极使用的 AWS Aurora mysql 实例中。

MySQL 8 具有排序规则 utf8mb4_0900_as_ci(不区分大小写,区分重音)。

但是,AWS Aurora 当前使用没有 utf8mb4_0900_as_ci 的 MySQL 5.7.12。 MySQL 5.7.12 确实有

utf8mb4_bin(区分大小写,在比较二进制时区分重音) utf8mb4_unicode_ci(不区分大小写,无法确定是否区分重音) utf8mb4_unicode_520_ci(不区分大小写,无法确定是否区分重音)

utf8mb4_unicode_ci 或 utf8mb4_unicode_520_ci 是否区分重音?如果是,我可以只使用其中一个吗(但哪个?)。

否则,除了使用 utf8mb4_bin 之外,我看不到其他选择,因为它似乎是唯一可用的区分重音的排序规则,但因为它是区分大小写的,所以我必须通过例如在 WHERE 子句中小写来解决区分大小写的问题,但是那样工作没有意外的不良副作用?

【问题讨论】:

【参考方案1】:

900 指的是 Unicode 9.0(最好,但 8.0 是新的) 520 指的是 Unicode 5.20(最好在 5.7 中提供)_unicode_ci 指的是 Unicode 4.0(旧)_general_ci(甚至不那么复杂)

_ci(不带_as)表示大小写重音不敏感_bin表示大小写重音敏感;比较位。 MySQL 没有提供许多混合敏感度的排序规则。

使用SHOW COLLATION; 查看系统中可用的排序规则。

【讨论】:

以上是关于AWS Aurora MySQL 5.7.12 重音敏感排序规则的主要内容,如果未能解决你的问题,请参考以下文章

AWS Aurora MySQL 无服务器:如何从 MySQL Workbench 连接

如何使用 aws cloudformation 或 aws cdk 设置 aws aurora mysql 表?

如何将 AWS RDS Aurora MySQL 5.6 升级到 5.7

Terraform,AWS RDS aurora mysql serverless 异常“找不到源集群”

AWS 迁移MSSQL 数据库到 Aurora

Lambda 在本地连接到 Aurora MySql - 部署到 AWS 时超时