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

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

Susan Sarandon
リリース: 2024-11-01 08:08:30
オリジナル
985 人が閲覧しました

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

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