運用サーバーのテーブル (約 35K レコードを保持) の INT(11) 列に、AUTO_INCREMENT を持つ 588 個の重複エントリが含まれていることがわかりました。その列には UNIQUE キーがないため、おそらくそれが原因です。
すべての重複エントリに一意の ID を付与し、列に 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