【发布时间】:2014-02-23 15:04:58
【问题描述】:
当使用以 utf8 编码的 varchar 字段作为主键时,我预计 mySQL 会出现奇怪的行为。对于在我的开发环境中不相等的字符串,它会因重复键错误而失败。
一个简短的例子:
SET NAMES 'utf8';
CREATE TABLE `test` (
`id` varchar(5) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
INSERT INTO `test` (`id`) VALUES ('das'), ('daß');
失败并出现错误:Duplicate entry 'daß' for key 'PRIMARY'.
我在 ubuntu 13.10 上使用默认配置运行 mySQL 5.5.35。
在另一个 mySQL Server(版本 5.0.95)上,相同的查询没有失败。这是因为 mySQL 版本还是有设置索引表编码的配置选项?
我在尝试将 mySQL 转储从生产服务器导入我的开发环境时遇到了这个问题。
【问题讨论】: