1

mysql データベースに contactnumber 列があります。contactnumber 列には 20,000 を超えるエントリがあります。.csv ファイルを介して新しい番号をアップロードすると、データベースに重複した番号は必要ありません。データベースに挿入するときに番号の重複を避けるにはどうすればよいですか。最初に、.csv ファイル内の各番号をデータベース内の各番号と照合するロジックを実装しました。これは機能しますが、1000 個の数字を含む .csv ファイルをアップロードするには時間がかかります。

重複した値をアップロードせずに、.csv ファイルのアップロードに必要な時間を最小限に抑える方法を提案してください。

4

5 に答える 5

1

列にUNIQUE制約を追加するだけです。contactnumber

ALTER TABLE `mytable` ADD UNIQUE (`contactnumber`);

そこからIGNORE、重複を挿入するときに通常表示されるエラーを無視するオプションを使用できます。

INSERT IGNORE INTO `mytable` VALUES ('0123456789');

ON DUPLICATE KEY UPDATEまたは、次の質問で詳しく説明されているように、を使用して dupe で何かを行うこともできます: MySQL - 挿入エラーを無視: 重複したエントリ

于 2013-05-17T05:30:45.503 に答える
0

contactnumber繰り返してはいけない場合は、それを作成するPRIMARYか、少なくともUNIQUEキーを作成してください。こうすることで、値が重複して挿入される場合、挿入は自動的に失敗し、事前に確認する必要がなくなります。

于 2013-05-17T05:31:52.880 に答える