> 데이터 베이스 > MySQL 튜토리얼 > MERGE 문을 사용하여 SQL에서 중복 INSERT를 방지하는 방법은 무엇입니까?

MERGE 문을 사용하여 SQL에서 중복 INSERT를 방지하는 방법은 무엇입니까?

Barbara Streisand
풀어 주다: 2024-11-01 14:42:29
원래의
299명이 탐색했습니다.

How to Prevent Duplicate INSERTs in SQL Using the MERGE Statement?

SQL에서 중복 INSERT 방지

데이터베이스 테이블에 데이터를 삽입하는 것이 중요하지만 때로는 중복 항목을 피하는 것이 어려울 수 있습니다. 사용자 입력으로 제공된 값을 삽입할 때 이러한 인스턴스가 발생합니다. 이 시나리오에서는 사용자가 실수로 중복 레코드를 제출하여 데이터 중복성 및 무결성 문제가 발생할 수 있습니다.

이 문제를 해결하기 위한 효과적인 해결책 중 하나는 SQL의 MERGE 문을 활용하는 것입니다. MERGE 문은 INSERT, UPDATE 및 DELETE 작업 기능을 단일 문으로 결합하여 데이터 조작에 대한 세부적인 제어를 제공합니다. 테이블에 아직 없는 경우에만 새 행을 삽입할 수 있습니다.

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 테이블에 새 행을 삽입하는 데 사용됩니다.
  • USING 절은 삽입할 값이 포함된 가상 테이블(X)을 지정합니다.
  • 이 경우 기존 행을 기준으로 일치하지 않기 때문에 ON 절은 비어 있습니다.
  • WHEN NOT MATCHED BY TARGET 절은 가상 테이블의 행이 Delegates 테이블에 아직 없는 경우 해당 행을 삽입하도록 지정합니다.

이 MERGE 문을 사용하면 중복 행이 삽입되지 않도록 할 수 있습니다. Delegates 테이블에 추가하여 데이터 무결성을 유지하고 중복 기록을 방지합니다.

위 내용은 MERGE 문을 사용하여 SQL에서 중복 INSERT를 방지하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿