我刚刚导出了一个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
时,是否需要在每列中使用此项?
我认为每个专栏的原因都是因为我想确保我可以存储 locale 值,例如æ, ø å
。
答案 0 :(得分:3)
由于您的列级排序规则完全相同,因此在表级设置排序规则会产生相同的效果。
请注意,排序规则不会影响 store ;相反,它会影响结果的排序方式。您希望每列具有不同排序规则的唯一原因是,如果您的表包含具有不同语言环境的数据的列,这些列需要不同的排序顺序。