与utf8_general_ci&混淆utf8_unicode_ci

时间:2015-08-18 03:20:05

标签: php mysql collation

mysql服务器排序规则是my.cnf中的utf8_general_ci

我正在为数据库使用utf8_general_ci排序规则,现在我创建了几个带有utf8_unicode_ci排序规则的表 相同的数据库。

现在我想对服务器/数据库/表/字段使用utf8_unicode_ci。为了做到这一点,我首先需要将服务器的排序规则更改为utf8_unicode_ci 然后是数据库,表格和字段。

我的问题是我已经在使用utf8_general_ci存储的表中有数据,我可以保持原样而不对数据做任何事情或者我是否需要进行任何类型的转换。

其他的是,你可以看到服务器级别的排序规则是utf8_general_ci,但是在表和字段级别是utf8_unicode_ci,所以当我从这些表中存储和检索数据时,我的当前设置是什么样的排序mysql使用?

谢谢。

1 个答案:

答案 0 :(得分:1)

“服务器级别”整理意味着什么 服务器和数据库级别charset(和排序规则)仅用作表(和数据库)创建的默认值。

  • 假设,如果在创建数据库时未提供任何排序​​规则,则将使用服务器排序规则创建它。但是如果你这样做 - 将使用提供的一个,服务器整理根本不会干扰。
  • 如果在表定义中未提供任何排序​​规则,则将使用数据库排序规则创建表。但是如果你这样做 - 将使用提供的服务器,服务器和数据库整理都不会影响你的查询。

重要的只是表格和字段级别的整理。

  

如果我已经在使用utf8_general_ci存储的表中有数据,我可以保持原样

是。您可以在数据库中拥有包含任何字符集的表。