TiDB6.5 设置排序规则为utf8mb4_general_ci之后,如果create table语句中指定了default charset=utf8 但是没有指定排序规则 那么该表的排序规则是啥

【 TiDB 使用环境】生产环境 /测试/ Poc
【 TiDB 版本】
【复现路径】做过哪些操作出现的问题
【遇到的问题:问题现象及影响】
TiDB6.5 设置排序规则为utf8mb4_general_ci之后,如果create table语句中指定了default charset=utf8 但是没有指定排序规则 那么该表的排序规则是啥,是utf8_bin还是utf8mb4_general_ci


字符集和排序规则 | PingCAP 文档中心

1 个赞

我不是问的优先级顺序

所以我改了哈哈哈,一开始看岔了

没有指定排序规则,但是指定了字符集。则默认的排序规则会使用指定字符集的默认排序规则

前边说的对,建议在创库时指定字符集和排序规则,建表时不指定这俩子句

我觉得是utf8_bin,但我懒得验证 :yum:

utf8_bin

测试一下:)

排序规则为utf8mb4_general_ci

utf8_bin

utf8_bin

有默认的字符集对应默认的排序,看看文档

眼见为实。你可以做个实验,create table之后用show create table 语句看看建表语句是怎么样的。我猜utf8mb4_general_ci可能性比较大。

一猜就错了。 :joy:。utf8编码默认用utf8_bin排序。如果没有指定,默认就这个。

会用字符集相匹配的

默认字符集为 utf8_bin

你说的对。我审题错了。我以为default_charset是utf8bm4。

utf8_bin

utf8_bin,与字符集相匹配