我对具有特定排序规则的UNIQUE键列中的重音有疑问。
我有字符集 utf8 的表格。我有列姓氏,其中collate是 utf8_czech_ci - 它不是UNIQUE键。
`surname` VARCHAR(50) NULL DEFAULT '0' COMMENT 'Surname' COLLATE 'utf8_czech_ci'
在此表中,我存储了两个测试名称“ i ”和“í”LATIN SMALL LETTER I WITH ACUTE。
当我尝试将此列 UNIQUE 时,我收到以下错误消息
SQL Error (1062): Duplicate entry 'í' for key
请注意,当我将'surname'的分页更改为 utf8_bin 时,可以创建UNIQUE键。其他归类如<strong> utf8_swedish_ci,utf8_spanish_ci,utf8_polish_ci 会返回相同的错误,例如 utf8_czech_ci 。
我认为整理只影响返回记录的顺序而不影响数据值的真正“意义”。不管是否整理,不同的数据应该存储为不同且唯一的 - 或者不是(?)有人可以解释这种行为吗?
我在WinXP上安装了MySQL 5.6。 MySQL的字符设置是:
mysql> show variables like '%character_set%';
"character_set_client" "utf8"
"character_set_connection" "utf8"
"character_set_database" "utf8"
"character_set_filesystem" "binary"
"character_set_results" "utf8"
"character_set_server" "utf8"
"character_set_system" "utf8"
"character_sets_dir" "c:\Program Files\MySQL\MySQL Server 5.6\share\charsets\"
感谢您的帮助。