我有一个桌子车,上面有桌子车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/