mysql
で重複した記録を防ぐための
戦略複製を作成せずにMySQLテーブルにデータを追加することは、データの整合性にとって重要です。 MySQLは、これを確実にするためのいくつかのアプローチを提供します
ステートメントINSERT IGNORE
コマンドは、エントリの重複を避けるための簡単な方法です。 同じプライマリキーまたは一意のインデックスを持つレコードがすでに存在する場合、挿入は単純にスキップされます。
INSERT IGNORE
例:
<code class="language-sql">INSERT IGNORE INTO my_table (col1, col2, col3) VALUES ('val1', 'val2', 'val3');</code>
INSERT ... ON DUPLICATE KEY UPDATE
これにより、より多くのコントロールが提供されます。 重複キーが検出された場合に実行するアクションを指定します。
ここで、重複が見つかった場合、
のみが更新されます。<code class="language-sql">INSERT INTO my_table (col1, col2, col3) VALUES ('val1', 'val2', 'val3') ON DUPLICATE KEY UPDATE col3 = VALUES(col3);</code>
col3
一意の制約を活用してくださいSKIP
テーブル列に一意の制約を定義することは、プロアクティブな方法です。 MySQLは、が発生する前に重複挿入を防止し、データベースレベルでデータの整合性を実施します。 データが既に存在する後に一意の制約を追加することは、既存の複製液を自動的に削除しないことを忘れないでください。将来のものだけを防ぐだけです
パフォーマンスへの影響一般に、重複のチェックがオーバーヘッドの減少により
を上回ります。ただし、後者は重複する重要な状況の処理においてより大きな柔軟性を提供します。 ニーズとパフォーマンスの要件に最適な方法を選択してください。
以上がデータをMySQLテーブルに挿入するときにレコードの重複を避ける方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。