SQL INSERT 操作における重複レコードの軽減
多くのデータベース システムには、重複レコードがテーブルに挿入されるのを防ぐメカニズムが提供されています。この場合、次のフィールドを含む「Delegates」というテーブルへの重複挿入を防ぐ必要があります:
次のクエリを使用して挿入を実行しています:
<code class="sql">INSERT INTO Delegates ([MemNo],[FromYr],[ToYr]) values(@MemNo, @FromYr,@ToYr)</code>
ただし、このアプローチでは、ユーザーが誤って挿入することを防ぐことはできません。同じメンバーと年の重複レコード。
MERGE を使用した解決策
重複挿入を避けるために、複数のレコードを実行する便利な方法を提供する MERGE ステートメントを使用できます。 2 つのテーブル間の比較、またはテーブルと一連の値の比較に基づく操作 (挿入、更新、または削除)。
この場合、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 を使用した SQL INSERT 操作で重複レコードを防ぐ方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。