数据库归类差异

时间:2016-04-07 作者:pastic

我在WAMP中开发了一个网站的数据库。数据库的排序规则为latin1_swedish_ci 但数据库中的每个表utf84mb_unicode_ci.

我应该为此担心吗?

将来我可以使用utf84mb_unicode_ci 对于这两种情况,但是我已经在其中包含内容的数据库呢?

1 个回复
最合适的回答,由SO网友:Rarst 整理而成

从MySQL手册的快速检查中,数据库排序规则仅与数据库级操作相关(emphasis mine):

  • For CREATE TABLE statements, 如果未指定表字符集和排序规则,则数据库字符集和排序规则将用作表定义的默认值。要覆盖此选项,请提供显式字符集和对照表选项。

  • For LOAD DATA statements 如果不包含字符集子句,服务器将使用CHARACTER\\u SET\\u数据库系统变量所指示的字符集来解释文件中的信息。若要覆盖此内容,请提供一个显式字符集子句。

  • For stored routines (过程和函数),在例程创建时生效的数据库字符集和排序规则用作字符数据参数的字符集和排序规则,声明中不包含字符集或排序规则属性。要覆盖此选项,请提供显式字符集并整理属性。

http://dev.mysql.com/doc/refman/5.7/en/charset-database.html

对于WordPress来说,重要的是表级排序规则。这就是为什么它实际上可以做创建/升级之类的事情utf8mb4 不是的数据库中的表。

因此,这似乎不是问题,您甚至可以在现有数据库上设置排序规则,而不会遇到任何问题(但对于表来说,情况完全不同!)。

相关推荐