0

我有一个表 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

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

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

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

我该如何解决这个问题?

4

1 回答 1

1

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

将字段设为uniqueidINT;问题就会消失。

于 2013-03-23T19:17:09.520 回答