创建数据库时是不是需要在 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 在插入时在 DATETIME 字段中设置当前日期