집 >데이터 베이스 >MySQL 튜토리얼 >MERGE를 사용하여 SQL INSERT 작업에서 중복 레코드를 방지하는 방법은 무엇입니까?
SQL INSERT 작업에서 중복 레코드 완화
많은 데이터베이스 시스템은 중복 레코드가 테이블에 삽입되는 것을 방지하는 메커니즘을 제공합니다. 이 경우 다음 필드가 포함된 "Delegates"라는 테이블에 중복 삽입을 방지해야 합니다.
다음 쿼리를 사용하여 삽입을 수행하고 있습니다.
<code class="sql">INSERT INTO Delegates ([MemNo],[FromYr],[ToYr]) values(@MemNo, @FromYr,@ToYr)</code>
그러나 이 접근 방식은 사용자가 실수로 삽입하는 것을 막지는 못합니다. 동일한 회원 및 연도에 대한 중복 레코드.
MERGE를 사용한 솔루션
중복 삽입을 방지하려면 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를 사용하여 SQL INSERT 작업에서 중복 레코드를 방지하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!