mysql字符集的优先级是多少?
What is the priority of mysql character set?
可以查看show create table 'table', show create database 'database', \s with db, table, system.[=12]的字符集=]
下面的情况table使用的是什么字符集?
如果客户端是utf8mb4,table是utf8mb4,那么用utf8mb4是没有问题的。
我可以忽略所有其他设置吗?
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
每一列都有自己的字符集和排序规则; table、数据库和服务器字符集只是新创建的新列、table 和数据库(分别)的默认值。但是 show create table
将显示与 table 默认值不同的任何列的字符集,因此如果您没有看到任何字符集,则 table 的字符集就是其列正在使用的字符集.
可以查看show create table 'table', show create database 'database', \s with db, table, system.[=12]的字符集=]
下面的情况table使用的是什么字符集?
如果客户端是utf8mb4,table是utf8mb4,那么用utf8mb4是没有问题的。 我可以忽略所有其他设置吗?
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
每一列都有自己的字符集和排序规则; table、数据库和服务器字符集只是新创建的新列、table 和数据库(分别)的默认值。但是 show create table
将显示与 table 默认值不同的任何列的字符集,因此如果您没有看到任何字符集,则 table 的字符集就是其列正在使用的字符集.