mysql字符集的优先级是多少



您可以用db、table、system检查show create table'table'、show create database'database'、\s的字符集。

如果情况如下,该表使用什么字符集?

如果客户端是utf8mb4,而表是utf8m b4,那么将其用作utf8mb 4是没有问题的。我可以忽略所有其他设置吗?

1.
mysql > show create database db_name;
+-----------+----------------------------------------------------------------------+
| Database  | Create Database                                                      |
+-----------+----------------------------------------------------------------------+
| db_name   | CREATE DATABASE `db_name` /*!40100 DEFAULT CHARACTER SET latin1 */   |
+-----------+----------------------------------------------------------------------+
2.
mysql > show create table tb_name;
CREATE TABLE `tb_name` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`var` varchar(255) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4
3.
s
Server characterset:    utf8
Db     characterset:    latin1
Client characterset:    utf8mb4
Conn.  characterset:    utf8mb4

每一列都有自己的字符集和排序规则;表、数据库和服务器字符集只是新创建的列、表和数据库(分别(的默认值。但是show create table将显示与表默认值不同的任何列的字符集,因此,如果您没有看到任何字符集,则表的字符集就是其列所使用的字符集。

最新更新