ホームページ > データベース > mysql チュートリアル > データをMySQLテーブルに挿入するときにレコードの重複を避ける方法は?

データをMySQLテーブルに挿入するときにレコードの重複を避ける方法は?

Susan Sarandon
リリース: 2025-01-25 03:52:09
オリジナル
786 人が閲覧しました

How to Avoid Duplicate Records When Inserting Data into a MySQL Table?

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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート