2011-08-09 10 views
0

データベースからすべての重複を削除しようとしています。私はこのウェブサイトで以下のコードを見つけました。問題はそれが私のデータベース全体を削除されます。悲しいことに、なぜMySQLがすべてのエントリを削除したのか、重複だけではないのかを知るには、MySQLについて十分に知りません。MS Accessを使用して重複を見つけて削除する

DELETE FROM RosterPool AS t1 
WHERE EXISTS (SELECT 1 from RosterPool t2 
WHERE t1.Rate = t2.Rate 
AND t1.FullName = t2.FullName 
AND t1.Last4 = t2.Last4 
AND t1.Graduated = t2.Graduated); 

すべての複製を別のテーブルに移動してそのテーブルを削除する方法はありますか?

+0

私はMS Accessを使用しており、データベースクエリはMySQL言語を使用しています。 – Navybofus

答えて

0

SQLデータベースには「移動」操作はありません。挿入、更新、および削除のみがあります。

安全にプレイしたい場合は、削除クエリを選択クエリに変えて、削除クエリとして実行した場合の正確な内容を確認できますが、行を1つから移動する方法はありませんinsert/select + delete操作シーケンスを実行せずに、別のテーブルに移動できます。

0

重複を削除する列にuniqeキーを押してください。 はあなたが書くコラム率の一意のキーを追加するには:あなたはすでに、 を重複行がある場合にエラーを与えるつもりが、キーワードがIGNORE追加することによって、あなたはそれを強制することができます

ALTER TABLE RosterPool ADD UNIQUE (Rate); 

がuniqeを追加し、警告を無視する

ALTER IGNORE TABLE RosterPool ADD UNIQUE (Rate); 
+0

チップをありがとう。今度は...私はこれを試してみて、別の列をチェックに追加しようとしています。なぜなら、重複しているかどうかを調べる唯一の方法は、LastNamesとLast4が他の項目と一致するかどうかを確認することです。 – Navybofus

+0

キーに複数の列を含めることができます。「ALTER IGNORE TABLE RosterPool AD​​D UNIQUE(Rate、FullName(100)、Last4、Graduated)」は、テキスト列に長さを指定する必要があることに注意してください –

関連する問題