SQL での重複 INSERT の防止
データベース テーブルへのデータの挿入は重要ですが、重複エントリの回避が困難になる場合があります。このような例の 1 つは、ユーザー入力によって提供された値を挿入するときに発生します。このシナリオでは、ユーザーが誤って重複レコードを送信する可能性があり、データの冗長性と整合性の問題が発生します。
この問題に対処するための効果的な解決策の 1 つは、SQL の MERGE ステートメントを利用することです。 MERGE ステートメントは、INSERT、UPDATE、および DELETE 操作の機能を 1 つのステートメントに結合し、データ操作をきめ細かく制御できます。テーブルに新しい行が存在しない場合にのみ、新しい行を挿入できます。
フィールド ID、MemberNo、FromYr、ToYr を持つ「Delegates」という名前の特定のテーブルの場合、次の 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 テーブルに追加し、データの整合性を維持し、重複したレコードを防ぎます。
以上がMERGE ステートメントを使用して SQL での重複 INSERT を防ぐ方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。