创建数据库时是不是需要在 MySQL 中设置 DEFAULT CHARSET?

Posted

技术标签:

【中文标题】创建数据库时是不是需要在 MySQL 中设置 DEFAULT CHARSET?【英文标题】:Is setting the DEFAULT CHARSET in MySQL necessary when creating databases?创建数据库时是否需要在 MySQL 中设置 DEFAULT CHARSET? 【发布时间】:2021-03-15 22:20:36 【问题描述】:

刚刚完成了有关 mysql 一些主题和一般使用 SQL 的课程,我注意到他们在创建数据库时设置了 CHARSET DEFAULT。

CREATE DATABASE IF NOT EXISTS dbName **DEFAULT CHARSET = utf8;**

本课程从未涉及过这一点,我还没有做过类似的事情,只是想知道这是否是在 DBMS 中创建数据库时的通用标准。

谢谢!

【问题讨论】:

【参考方案1】:

这是可选的。

如果你不指定字符集,数据库仍然会有一个默认值,它只是一个“默认默认值”,它取自 MySQL 的 character_set_server 配置变量的值。

如果在 CREATE TABLE 时指定表的字符集,则会忽略数据库默认字符集。换句话说,如果您不依赖默认值,而是为每个表指定一个。

在 MySQL 8.0 中,character_set_server 的开箱即用默认值终于是 utf8mb4,推荐使用。所以创建数据库时不需要指定字符集。

【讨论】:

感谢您的快速响应,很高兴听到 utf8mb4 现在是默认设置!

以上是关于创建数据库时是不是需要在 MySQL 中设置 DEFAULT CHARSET?的主要内容,如果未能解决你的问题,请参考以下文章

在mysql中设置字符集有啥作用?

MySQL 在插入时在 DATETIME 字段中设置当前日期

在 Laravel 中设置 PHPUnit 测试

关于mysql中设置编码的重要性

如何在ResourceBundleMessageSource中设置默认语言环境?

MYSQL:当满足子查询的所有条件时,在 UPDATE 查询中设置值