0

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

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

如果客户端是utf8mb4,表是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
4

1 回答 1

0

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

于 2020-08-10T02:20:58.387 回答