ホームページ > データベース > mysql チュートリアル > MySQL で条件付き挿入を実行してエントリの重複を避けるにはどうすればよいですか?

MySQL で条件付き挿入を実行してエントリの重複を避けるにはどうすればよいですか?

Linda Hamilton
リリース: 2024-12-13 09:54:14
オリジナル
464 人が閲覧しました

How to Perform Conditional Inserts in MySQL to Avoid Duplicate Entries?

MySQL での条件付き挿入

条件付き INSERT ステートメントを使用すると、特定の条件でテーブルにデータを挿入できます。これは、重複エントリを防止したり、データの整合性を確保したりする場合に特に役立ちます。このようなシナリオの 1 つは、指定されたユーザーがまだ特定のアイテムを所有していない場合にのみ新しい行を挿入することです。

MySQL で条件付き挿入を実行するには、次の手順を検討してください:

  • 列 (インスタンス、ユーザー、アイテム) を含む x_table を作成します: 重複を防ぐために、インスタンス列に一意のインデックスがあることを確認してくださいエントリ。
  • 条件付き INSERT ステートメントを作成します: 指定された条件が満たされた場合にのみ新しい行を挿入するには、次の構文を使用します:
INSERT INTO x_table (instance, user, item) 
SELECT <instance_value>, <user_value>, <item_value>
FROM dual
WHERE NOT EXISTS (SELECT * FROM x_table
                     WHERE user = <user_value> 
                       AND item = <item_value>)
ログイン後にコピー
  • プレースホルダーを置換: 置換挿入したい実際の値を指定します。たとえば、instance=919191、user=123、item=456 を挿入するには、ステートメントは次のようになります。
INSERT INTO x_table (instance, user, item) 
SELECT 919191, 123, 456
FROM dual
WHERE NOT EXISTS (SELECT * FROM x_table
                     WHERE user = 123 
                       AND item = 456)
ログイン後にコピー

このステートメントは、user=123 の組み合わせの場合にのみ新しい行を挿入します。 item=456 は x_table にまだ存在しません。そのような行が存在する場合、挿入はスキップされます。

  • 追加で使用: DBMS が挿入中に他のテーブルからの選択に制限を課している場合は、次のように MERGE ステートメントを調べることができます。条件付き INSERT の代替手段。

以上がMySQL で条件付き挿入を実行してエントリの重複を避けるにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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