テーブルcars1とcars2の結合データが取り込まれるテーブルcarsがあります。スキーマは次のようになります。
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);
どうすればその問題を解決できますか?