1

我刚刚导出了一个 MySQL 数据库,以便在另一台服务器上复制它。查看 sql 脚本,我看到以下内容:

CREATE TABLE `X` (
  `id` int(11) unsigned NOT NULL AUTO_INCREMENT,
  `name` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL,
  `email` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL
  PRIMARY KEY (`id`),
  KEY `name_index` (`name`)
) ENGINE=InnoDB AUTO_INCREMENT=8366 
  DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;

为表格设置时,我是否需要每列使用它collate

我认为每列都有这个的原因是因为我想确保我可以存储区域设置值,例如æ, ø å.

4

1 回答 1

3

由于您的列级别排序规则都是相同的,因此在表级别设置排序规则将具有相同的效果。

请注意,排序规则对您可以存储的内容没有影响;相反,它会影响结果的排序方式。您希望每列使用不同排序规则的唯一原因是,如果您的表包含的列具有不同区域设置的数据,需要不同的排序顺序。

于 2014-02-20T18:15:14.787 回答