Reduzierung doppelter Datensätze in SQL-INSERT-Operationen
Viele Datenbanksysteme bieten Mechanismen, um zu verhindern, dass doppelte Datensätze in Tabellen eingefügt werden. In diesem Fall müssen Sie sich vor doppelten Einfügungen in einer Tabelle namens „Delegates“ schützen, die die folgenden Felder enthält:
Sie führen Einfügungen mit der folgenden Abfrage durch:
<code class="sql">INSERT INTO Delegates ([MemNo],[FromYr],[ToYr]) values(@MemNo, @FromYr,@ToYr)</code>
Dieser Ansatz verhindert jedoch nicht, dass Benutzer versehentlich etwas einfügen doppelte Datensätze für dasselbe Mitglied und Jahr.
Lösung mit MERGE
Um doppelte Einfügungen zu vermeiden, können Sie die MERGE-Anweisung verwenden, die eine bequeme Möglichkeit bietet, mehrere einzufügen Operationen (Einfügen, Aktualisieren oder Löschen) basierend auf einem Vergleich zwischen zwei Tabellen oder einer Tabelle und einer Menge von Werten.
In diesem Fall kann die MERGE-Anweisung wie folgt verwendet werden:
<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>
Diese Anweisung bewirkt Folgendes:
Das obige ist der detaillierte Inhalt vonWie verhindert man doppelte Datensätze in SQL-INSERT-Operationen mithilfe von MERGE?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!