我有一个桌面车,其中填充了表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);
我该如何解决这个问题?
答案 0 :(得分:1)
uniqueid
字段的类型为VARCHAR(10)
,表示它可以包含'1'
,'1 '
或'1 '
,所有这些值看起来都一样,但他们不一样。
制作字段uniqueid
INT;问题会消失。