7

我的表结构:

CREATE TABLE `userimageview` (
  `user_id` int(11) unsigned NOT NULL,
  `image_id` int(11) unsigned NOT NULL,
  `thumbnail_view` int(10) unsigned NOT NULL,
  `fullsize_view` int(10) unsigned NOT NULL,
  `point` int(10) unsigned NOT NULL,
  KEY `everything` (`user_id`,`image_id`,`thumbnail_view`,`fullsize_view`,`point`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

我要添加的索引:

ALTER TABLE `userimageview` ADD UNIQUE `user_image` (`user_id` , `image_id`)

结果:

#1062 - Duplicate entry '1-11' for key 'user_image' 

我应该如何添加我的UNIQUE索引?

4

1 回答 1

13

您新添加UNIQUE的约束失败,因为您的表已经包含违反它的重复行。使用如下查询找到约束违反者。UNIQUE只要这些行存在,您就无法添加索引。

SELECT
  user_id, 
  image_id, 
  COUNT(*) AS dupes
FROM userimageview
GROUP BY user_id, image_id
HAVING dupes > 1
ORDER BY dupes DESC
于 2012-04-24T01:27:38.177 回答