ホームページ >データベース >mysql チュートリアル >「デリゲート」テーブルへのデータ挿入中に値の重複を防ぐにはどうすればよいですか?

「デリゲート」テーブルへのデータ挿入中に値の重複を防ぐにはどうすればよいですか?

Susan Sarandon
Susan Sarandonオリジナル
2024-11-01 08:08:30974ブラウズ

How to Prevent Duplicate Values During Data Insertion in a

データ挿入中の重複値の防止

問題ステートメント:

「」という名前のテーブル内「デリゲート」には、一意のメンバー情報と範囲フィールド「FromYr」および「ToYr」が含まれており、ユーザー入力を使用してデータを挿入すると、同じ年のメンバーが重複する危険があります。

解決策:

この問題に対処し、データの整合性を確保するには、MERGE ステートメントを利用できます。 MERGE ステートメントを使用すると、条件付き挿入を実行して、レコードがテーブル内に存在しない場合にのみレコードを更新できます。

実装:

<code class="sql">MERGE INTO Delegates D
USING (values(@MemNo, @FromYr,@ToYr)) X ([MemNo],[FromYr],[ToYr])
ON (insert unique key join)
WHEN NOT MATCHED BY TARGET THEN
INSERT ([MemNo],[FromYr],[ToYr]))
VALUES (X.[MemNo],X.[FromYr],X.[ToYr]);</code>

説明:

  • MERGE INTO: このステートメントは、更新または挿入されるターゲット テーブル (「デリゲート」) を指定します。
  • USING: この句は、ターゲット テーブルと比較されるソース データ (「X」) を定義します。
  • ON: 結合基準は、行が一致する条件を指定します。マージ操作中。この場合、一意のキー結合 (例: MemberNo と year) を使用して、行がすでに存在するかどうかを識別します。
  • WHEN NOT MATCHED BY TARGET THEN: このステートメントは、次のアクションを定義します。ターゲットテーブルに一致する行が見つからない場合に取得されます。この場合、INSERT が実行されて新しい行が追加されます。

以上が「デリゲート」テーブルへのデータ挿入中に値の重複を防ぐにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。