Я только что обнаружил, что таблица на моем производственном сервере (которая содержит приблизительно 35 тыс. Записей) содержит 588 повторяющихся записей в столбце INT (11), который имеет AUTO_INCREMENT.Ключ UNIQUE отсутствует в этом столбце, поэтому, вероятно, это и есть причина.
Есть идеи, как дать всем дублирующимся записям уникальный идентификатор, а затем добавить ключ UNIQUE в столбец, чтобы это больше никогда не повторилось?
Схема таблицы:
CREATE TABLE `items` (
`item_ID` int(11) unsigned NOT NULL auto_increment,
`u_ID` int(10) NOT NULL default '0',
`user_ID` int(11) NOT NULL default '0',
`p_ID` tinyint(4) NOT NULL default '0',
`url` varchar(255) NOT NULL,
`used` int(10) unsigned NOT NULL,
`sort` tinyint(4) NOT NULL,
`last_checked` int(11) NOT NULL,
`unixtime` int(11) NOT NULL,
`switched` int(11) NOT NULL,
`active` tinyint(1) NOT NULL default '0',
UNIQUE KEY `unique` (`p_ID`,`url`),
KEY `index` (`u_ID`,`item_ID`,`sort`,`active`),
KEY `index2` (`u_ID`,`switched`,`active`),
KEY `item_ID` (`item_ID`),
KEY `p_ID` (`p_ID`),
KEY `u_ID` (`u_ID`)
) ENGINE=MyISAM AUTO_INCREMENT=42755 DEFAULT CHARSET=utf8