Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
我如何在MySQL中找出默认的字符集/排序规则_Mysql_Database_Character Encoding_Mysql Workbench_Collation - Fatal编程技术网

我如何在MySQL中找出默认的字符集/排序规则

我如何在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

我在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 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。您可以由此推断,将来可能会有新的“更好”排序规则