Oracle 데이터베이스의 UPSERT 작업
UPSERT(테이블에 업데이트 또는 삽입) 작업은 일치하는 데이터가 있는 행이 있는지 여부에 따라 기존 행을 수정하거나 테이블에 새 행을 추가하는 편리한 방법을 제공합니다.
Oracle 데이터베이스의 UPSERT 과제
다른 데이터베이스와 달리 Oracle은 전용 UPSERT 문을 제공하지 않습니다. 이 문제를 극복하기 위해 우리는 여러 데이터 소스의 데이터를 결합하는 강력한 메커니즘인 MERGE 문을 사용합니다.
MERGE를 사용하여 Oracle UPSERT 작업 수행
MERGE 문은 두 개의 테이블을 작동합니다. 하나는 대상 테이블(여기에서는 mergetest)로, 다른 하나는 자리 표시자(DUAL)로 작동합니다. 이 기술을 사용하면 UPSERT 기능을 구현할 수 있습니다.
구현예
다음 코드를 고려하세요.
<code class="language-sql">create or replace procedure ups(xa number) as begin merge into mergetest m using dual on (a = xa) when not matched then insert (a,b) values (xa,1) when matched then update set b = b+1; end ups; /</code>
이 절차에서는 UPSERT 작업을 수행하는 기능을 정의합니다.
사용법:
<code class="language-sql">call ups(10); call ups(10); call ups(20); select * from mergetest;</code>
출력:
<code>A B ---------------------- ---------------------- 10 2 20 1</code>
결론
MERGE 문을 사용하면 Oracle에서 UPSERT 기능을 효과적으로 구현하여 일치하는 행이 있는지 여부에 따라 테이블의 데이터를 수정하거나 삽입할 수 있습니다.
위 내용은 Oracle 데이터베이스에서 UPSERT 작업을 어떻게 수행할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!