0

2 つの等しいデータベース (A と B) があり、それぞれ 1 つのテーブルが別々のオフライン マシンで実行されています。

毎日、データを (csv として) エクスポートし、それを 3 番目のデータベース (C) に「マージ」します。最初に A を処理し、次に B を処理します (A から C にコンテンツを挿入し、次に B から C にコンテンツを挿入します)。

ここで、行が重複する可能性があります。「メール」などのフィールドが既に存在する場合は、重複を考慮します。残りのフィールドが同じかどうかは気にしません。

重複している行を除いて、A と B を C に挿入するにはどうすればよいですか?

前もって感謝します!

4

2 に答える 2

1

最も簡単な解決策は、問題の列に一意のインデックスを作成し、2 番目の挿入を INSERT IGNORE として実行することです。

于 2012-12-07T13:20:38.490 に答える
0

個人的には、使用する ON DUPLICATE KEY UPDATEINSERT IGNOREエラーが警告としてスローされるように使用します。

これにはいくつかの副作用があり、予期しない動作が発生する可能性があります。いくつかの副作用の詳細については、この記事を参照してください。

最終的にこの構文を使用する場合はON DUPLICATE KEY UPDATE、ロジックを変更して、ビジネス要件が変化した場合に特定のフィールドを新しいデータで更新する手段も提供します。

たとえば、 と言うと、重複レコードが挿入された回数を集計できますON DUPLICATE KEY UPDATE quantity = quantity+1

上記の投稿には、さらに多くの情報があります。

于 2012-12-07T15:12:18.747 に答える