Mysql 唯一密钥不工作

Mysql 唯一密钥不工作,mysql,sql,unique,Mysql,Sql,Unique,我有一个表cars,它由表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 DEFAUL

我有一个表cars,它由表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
数据get通过简单的INSERT IGNORE INTO SELECT from语句从cars1和cars2填充到该表中

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

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

如何解决该问题?

uniqueid字段的类型是
VARCHAR(10)
,这意味着它可以包含
'1'
'1'
'1'
,所有这些值看起来相同,但它们不相同


使字段
uniqueid
INT;问题将消失。

如果我不能这样做,因为uniqueid字段也包含类似“abcd”的id,该怎么办?我可以建议您更新表格-要修剪字符串:更新汽车集uniqueid=trim(uniqueid)。