我有一个桌子车,上面有桌子车1和车2的合并数据。
模式如下所示:

 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);


我该如何解决该问题?

最佳答案

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

将字段设置为uniqueid INT;问题将会消失。

关于mysql - 唯一 key 不起作用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15589861/

10-10 06:54