Oracle 데이터베이스에서 UPSERT 작업 수행
UPSERT 작업(업데이트와 삽입의 조합)은 테이블의 데이터를 수정합니다. Oracle에는 전용 UPSERT 문이 없기 때문에 이를 효율적으로 수행하는 방법에 대한 의문이 제기됩니다.
해결책: MERGE 문
Oracle은 한 테이블의 데이터를 다른 테이블에 병합하는 MERGE 문을 제공합니다. 삽입, 업데이트, 삭제의 세 가지 작업이 가능합니다. 단일 행과 단일 열을 포함하는 DUAL 테이블을 사용하여 UPSERT 작업을 시뮬레이션할 수 있습니다.
예:
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; /
사용법:
-- 创建必要的表 drop table mergetest; create table mergetest(a number, b number); -- 调用过程以执行UPSERT call ups(10); call ups(10); call ups(20); -- 验证结果 select * from mergetest;
출력:
<code>A B ---------------------- ---------------------- 10 2 20 1</code>
이 MERGE 문은 지정된 키(xa)와 일치하는 행이 있으면 행이 업데이트되고 그렇지 않으면 새 행이 삽입되도록 합니다.
위 내용은 Oracle 데이터베이스에서 UPSERT 작업을 수행하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!