我如何在MySQL中找出默认的字符集/排序规则
我在Ubuntu 18.04上使用MySQL和MySQL Workbench 8.0+。创建字符串类型的列时,将字符集/排序规则保留为默认值。在MySQL workbench中,它只是告诉我它是我如何在MySQL中找出默认的字符集/排序规则,mysql,database,character-encoding,mysql-workbench,collation,Mysql,Database,Character Encoding,Mysql Workbench,Collation,我在Ubuntu 18.04上使用MySQL和MySQL Workbench 8.0+。创建字符串类型的列时,将字符集/排序规则保留为默认值。在MySQL workbench中,它只是告诉我它是默认字符集 我当前的MySQL和Workbench使用的默认字符集是什么?我怎样才能知道这一点呢?使用SHOW CREATE TABLE。例如: CREATE TABLE a ( dflt VARCHAR(11), cs VARCHAR(11) CHARACTER SET latin
默认字符集
我当前的MySQL和Workbench使用的默认字符集是什么?我怎样才能知道这一点呢?使用
SHOW CREATE TABLE
。例如:
CREATE TABLE a (
dflt VARCHAR(11),
cs VARCHAR(11) CHARACTER SET latin1,
cola VARCHAR(11) COLLATE utf8mb4_hungarian_ci,
cc VARCHAR(11) CHARACTER SET latin1 COLLATE latin1_bin,
colb VARCHAR(11) COLLATE latin1_bin
);
SHOW CREATE TABLE a\G
mysql> SHOW CREATE TABLE a\G
*************************** 1. row ***************************
Table: a
Create Table: CREATE TABLE `a` (
`dflt` varchar(11) DEFAULT NULL,
`cs` varchar(11) CHARACTER SET latin1 COLLATE latin1_swedish_ci DEFAULT NULL,
`cola` varchar(11) CHARACTER SET utf8mb4 COLLATE utf8mb4_hungarian_ci DEFAULT NULL,
`cc` varchar(11) CHARACTER SET latin1 COLLATE latin1_bin DEFAULT NULL,
`colb` varchar(11) CHARACTER SET latin1 COLLATE latin1_bin DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci
注:
- 大多数列都指定了字符集和排序规则
- 不使用(
)的设置从表的dflt
默认值继承这些设置李>
- 每个
字符集都有一个“默认”排序规则
- 每个
仅与一个COLLATE
关联,即排序规则名称的第一部分字符集
- (此处未显示):表的
继承自默认值
数据库
- 如果您什么也不做,MySQL 8默认为
CHARSET=utf8mb4 COLLATE=utf8mb4\u 0900\u ai\u ci
- 旧版本默认为
CHARSET=latin1-COLLATE=latin1\u-swedish\u-ci
- 某些排序规则中的“0900”或“520”指的是Unicode标准版本9.0和5.20。您可以由此推断,将来可能会有新的“更好”排序规则
- 每个