ホームページ  >  記事  >  データベース  >  SQL での INSERT 中に値の重複を防ぐにはどうすればよいですか?

SQL での INSERT 中に値の重複を防ぐにはどうすればよいですか?

Barbara Streisand
Barbara Streisandオリジナル
2024-10-31 08:30:02867ブラウズ

How to Prevent Duplicate Values during INSERT in SQL?

SQL での INSERT 中の重複値の防止

列「ID」、「MemberNo」、「FromYr」を持つテーブル「Delegates」があるとします。 " および "ToYr" を使用する場合、ユーザーはユーザー入力から重複した値が挿入されないようにする必要があります。元のクエリ INSERT INTO Delegates ([MemNo],[FromYr],[ToYr]) value(@MemNo, @FromYr,@ToYr) では、同じメンバーと年の重複エントリが許可されています。

Toこの問題に対処するには、ユーザーは MERGE コマンドを使用できます。 MERGE は、INSERT、UPDATE、および DELETE ステートメントの機能を 1 つの操作に結合します。次の 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 ステートメントは、次のことを実行します。

  • 最初に、"Delegates" テーブル (D ) ユーザー (X) が指定した値に置き換えます。
  • 一致が見つかった場合 (指定された結合条件に基づいて、一意である必要があります)
  • 一致するものが見つからない場合は、X の値を使用して新しい行を挿入します。

この MERGE ステートメントを使用すると、ユーザーは次のことができます。重複する値が「デリゲート」テーブルに挿入されないように注意してください。

以上がSQL での INSERT 中に値の重複を防ぐにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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