本文主要介绍 OceanBase 数据库 MySQL 模式的字符序。
默认情况下 OceanBase 数据库 MySQL 模式使用的字符集为 utf8mb4,默认字符序校对规则为 utf8mb4_general_ci(默认不区分大小写)。如果需要对字符字段内容进行大小写区分,需要将字符序设置为 utf8mb4_bin。
查看字符序
通过以下方法查看支持的字符序校对规则与当前各级别的字符序设置。
通过
SHOW COLLATION语句查看支持的字符序校对规则。obclient> SHOW COLLATION; +--------------------+---------+-----+---------+----------+---------+ | Collation | Charset | Id | Default | Compiled | Sortlen | +--------------------+---------+-----+---------+----------+---------+ | utf8mb4_general_ci | utf8mb4 | 45 | Yes | Yes | 1 | | utf8mb4_bin | utf8mb4 | 46 | | Yes | 1 | | binary | binary | 63 | Yes | Yes | 1 | | gbk_chinese_ci | gbk | 28 | Yes | Yes | 1 | | gbk_bin | gbk | 87 | | Yes | 1 | | utf16_general_ci | utf16 | 54 | Yes | Yes | 1 | | utf16_bin | utf16 | 55 | | Yes | 1 | | utf8mb4_unicode_ci | utf8mb4 | 224 | | Yes | 1 | | utf16_unicode_ci | utf16 | 101 | | Yes | 1 | | gb18030_chinese_ci | gb18030 | 248 | Yes | Yes | 1 | | gb18030_bin | gb18030 | 249 | | Yes | 1 | +--------------------+---------+-----+---------+----------+---------+ 11 rows in set (0.00 sec)通过
SHOW GLOBAL VARIABLES查询当前租户下各级别字符序设置。obclient> SHOW GLOBAL VARIABLES LIKE '%coll%'; +----------------------+--------------------+ | Variable_name | Value | +----------------------+--------------------+ | collation_connection | utf8mb4_general_ci | | collation_database | utf8mb4_general_ci | | collation_server | utf8mb4_general_ci | +----------------------+--------------------+ 3 rows in set (0.01 sec)
设置字符序
通过以下方法设置字符序。
设置数据库级字符序。
此时在数据库中的查询可以模糊匹配区分大小写。
obclient> SET collation_database=utf8mb4_bin;设置服务器级字符序。
此时在服务器上的查询可以模糊匹配区分大小写。
obclient> SET collation_server=utf8mb4_bin;