【问题标题】:Is there any point of using COLLATE per column when creating tables?创建表时每列使用 COLLATE 有什么意义吗?
【发布时间】:2014-02-20 18:03:12
【问题描述】:

我刚刚导出了一个 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 值,例如æ, ø å

【问题讨论】:

    标签: mysql collate


    【解决方案1】:

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

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

    【讨论】:

    • 很高兴知道。谢谢:)
    猜你喜欢
    • 2010-10-22
    • 2011-03-03
    • 2017-07-12
    • 1970-01-01
    • 2011-06-29
    • 1970-01-01
    • 1970-01-01
    • 2016-09-16
    • 2010-09-23
    相关资源
    最近更新 更多