唯一键不起作用

时间:2013-03-23 17:30:28

标签: mysql sql unique

我有一个桌面车,其中填充了表cars1和cars2的连接数据。 架构如下所示:

 CREATE TABLE `cars` (
   `id` int(10) NOT NULL AUTO_INCREMENT,
   `uniqueid` varchar(10) NOT NULL,
   `name` varchar(20) NOT NULL
   UNIQUE KEY `uniqueid` (`uniqueid`)
 ) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=latin1

但是,我的表中的uniqueid字段有重复的条目:

 ID     UNIQUEID     NAME
 1      1            Mercedes
 2      2            Audi
 3      2            Chevrolet

使用简单的INSERT IGNORE INTO SELECT FROM语句从cars1和cars2填充该表中的数据。

这怎么可能?可能是表的索引是否已损坏?通过执行以下操作我遇到了重复的行:

 SELECT uniqueid, COUNT(uniqueid) FROM cars GROUP BY uniqueid HAVING(COUNT(uniqueid)>1);

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

uniqueid字段的类型为VARCHAR(10),表示它可以包含'1''1 ''1 ',所有这些值看起来都一样,但他们不一样。

制作字段uniqueid INT;问题会消失。