Moh*_*aji 6 mysql indexing unique mysql-error-1062
我的表结构:
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;
Run Code Online (Sandbox Code Playgroud)
我要添加的索引:
ALTER TABLE `userimageview` ADD UNIQUE `user_image` (`user_id` , `image_id`)
Run Code Online (Sandbox Code Playgroud)
结果:
#1062 - Duplicate entry '1-11' for key 'user_image'
Run Code Online (Sandbox Code Playgroud)
我该如何添加UNIQUE索引?
Mic*_*ski 12
您新添加的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
Run Code Online (Sandbox Code Playgroud)