MySQL 对主键区分大小写
Posted
技术标签:
【中文标题】MySQL 对主键区分大小写【英文标题】:MySQL case sensitivity for primary key 【发布时间】:2013-03-19 04:37:02 【问题描述】:mysql 主键值是否区分大小写?如果这是一个选项,我该如何设置?我希望该表能够将“www.Example.com”和“www.example.com”存储为不同的值。
【问题讨论】:
你尝试的时候发生了什么? 它给了我一个重复的主键错误,但我在一个查询中多次插入到表中。所以我相信它认为这两个条目是相同的。这是我需要知道如何改变的。 【参考方案1】:BINARY
关键字可以解决问题,但我不确定这是否是推荐的方法:
CREATE TABLE testpk (MyPK VARCHAR(20) BINARY PRIMARY KEY NOT NULL)
【讨论】:
【参考方案2】:您可以在 MySQL 中设置每列排序规则:https://dev.mysql.com/doc/refman/5.5/en/charset-column.html
例如如果您的表格通常(例如)不区分大小写,则可以按字段覆盖它以区分大小写。
【讨论】:
那么我是否正确理解“utf8_general_ci”很可能意味着它不区分大小写?如果那是真的,我应该使用二进制排序规则吗? 是的。 ci 不区分大小写。但有utf8_general_cs
区分大小写。
我收到了Unknown collation: 'utf8_general_cs'
。这是我使用的 MySQL 版本的问题吗? (5.1)以上是关于MySQL 对主键区分大小写的主要内容,如果未能解决你的问题,请参考以下文章