0

データベースに入力する必要がある CSV ファイルがあります。私のやり方は一括挿入です。列の 1 つに一意性制約が付加されていますが、それはプライマリ列ではありません。重複するエントリがある場合、その行は正しくスキップされ、データベースには入力されません。(コマンド ラインでは、Duplicates: n と表示されます。ここで、n は重複の総数です)。

重複した行番号を取得できる方法はありますか? たとえば、Show Warnings または Show Errors を使用すると、最後の MySQL エラーと警告が表示されますが、MySQL だけから重複を取得できますか?

ありがとう。

4

1 に答える 1

1

一意性制約なしで最初にデータを一時テーブルに入力し、クエリを実行してすべての重複を見つけることができます。

SELECT unique_column, count(*) c
FROM temp_tablename
GROUP BY unique_column
HAVING c > 1;

次に、一時テーブルから実際のテーブルにコピーします。

INSERT IGNORE INTO tablename SELECT * FROM temp_tablename;
于 2013-05-01T18:25:45.757 に答える